所以我有一个任意的项目数组:

array = [0,1,2,3,4];

当它被切成块的时候,看起来像:
array.chunk(2) =>  [[0,1],[2,3],[4]];

array.chunk(3) =>  [[0,1,2],[3,4]];

我想要的是一个算法,根据组的大小,得到索引所在组的索引。
例如,对array中的每个元素运行算法将产生:
array.chunkIndex( chunkSize = 2, index = n )

0 => 0
1 => 0
2 => 1
3 => 1
4 => 2

array.chunkIndex( chunkSize = 3, index = n )

0 => 0
1 => 0
2 => 0
3 => 1
4 => 1

因此,在chunksize=1的索引上运行算法将始终生成原始索引。
我该怎么做呢?为了清楚起见,我不想将数组分块,只要确定它将在哪个组中,如果可能的话,不需要循环,也不需要内置函数。

最佳答案

同样在psuedo代码中:

chunkIndex = index / chunkSize

这是一个简单的整数除法,这意味着你唯一需要注意的是返回浮点/十进制/实数的语言。对于这些情况,您将需要一个floor函数来查找结果的整数部分。您可能还希望处理负值。

10-07 19:11
查看更多