Javascript 确定阵列中偏移量的最快方法

Javascript 确定阵列中偏移量的最快方法,javascript,arrays,Javascript,Arrays,如果我有一个任意长度的数组。如果每个切片的元素数已知,如何找到该数组中给定元素的偏移量?我的意思是没有实际切片阵列 例如: arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..n] if perSlice = 4; offset for arr[5] == 1, for arr[8] == 2 etc. if perSlice = 3; offset for arr[2] = 0, for arr[4] = 1 etc. i.e.: perSlice =

如果我有一个任意长度的数组。如果每个切片的元素数已知,如何找到该数组中给定元素的偏移量?我的意思是没有实际切片阵列

例如:

arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..n]

if perSlice = 4; offset for arr[5] == 1, for arr[8] == 2 etc.
if perSlice = 3; offset for arr[2] = 0, for arr[4] = 1 etc.

i.e.: 

perSlice = 4
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..n]
 0  0  0  0  1  1  1  1  2  2  2,  ..n
你可以用,拿着那个“个人牌”

如果您想知道元素最终会出现在哪个切片中,请使用除法而不是%

Math.floor(arr.indexOf(5) / perSlice) // 1
你可以用,拿着那个“个人牌”

如果您想知道元素最终会出现在哪个切片中,请使用除法而不是%

Math.floor(arr.indexOf(5) / perSlice) // 1

使用模数运算符

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..n]

       arr[(((index + step) % arr.length) + arr.length) % arr.length];

使用模数运算符

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..n]

       arr[(((index + step) % arr.length) + arr.length) % arr.length];

通过执行以下操作查找索引i处的偏移量:
parseInt(i/perSlice)


编辑:注意这使用索引i处的值,而不是索引本身。代码很容易修改,可以使用索引而不是值。

通过执行以下操作找到索引i处的偏移量:parseInt(i/perSlice)


编辑:注意这使用索引i处的值,而不是索引本身。代码很容易修改,可以使用索引而不是值。

或者,您的意思是在一个Array.prototype.slice之后使用索引?在这种情况下,减去perSlice而不是%.Ah,您的意思是“元素最终将在哪个切片中结束”。请参见我的编辑。或者,您的意思是在一个Array.prototype.slice之后建立索引?在这种情况下,减去perSlice而不是%.Ah,您的意思是“元素最终将在哪个切片中结束”。请参阅我的edit.updated代码以生成所需的数组(据我所知),不,我不需要生成数组。这只是为了更好地解释我需要什么。感谢您提供了生成所需数组的代码(据我所知),不,我不需要生成数组。这只是为了更好地解释我需要什么。谢谢