所以我有一个任意的项目数组:
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
函数来查找结果的整数部分。您可能还希望处理负值。