获取分块数组中项的组索引的算法

Algorithm to get group index of item in chunked array

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

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 索引的算法将始终生成原始索引。

我该怎么做?明确地说,我不想对数组进行分块,只要确定它将在哪个组中,如果可能的话,没有循环也没有内置函数。

floor(index / chunkSize) 应该可以!

也在伪代码中:

chunkIndex = index / chunkSize

这是简单的整数除法,这意味着您必须注意的唯一情况是 return 会 float/decimal/real 的语言。对于这些情况,您将需要一个 floor 函数来仅查找结果的整数部分。您可能还希望处理负值。