所以我有一个任意的项目数组:
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 的索引上运行该算法将始终产生原始索引。
我该怎么做呢?需要明确的是,我不想对数组进行分块,只是确定它将在哪个组中,如果可能的话,没有循环也没有内置函数。
最佳答案
同样在伪代码中:
chunkIndex = index / chunkSize
这是简单的整数除法,这意味着您必须注意的唯一情况是返回 float /小数/实数的语言。对于这些情况,您将需要一个 floor
函数来查找结果的整数部分。您可能还希望处理负值。
关于arrays - 获取分块数组中项的组索引的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32193529/