我有一个以预定方式跳过数组项的功能,例如,如果我告诉我告诉阵列中的最后一个项目,我需要它,我需要它能够跳到前方两个项目,并降落在该数组中的第一项在这里是:
function skip (start, pattern, arr)
{
let idx = 0,
res = [ ];
pattern.unshift (start);
for (let i of pattern) {
idx += i;
res.push (arr [idx]);
}
return res;
}
为了澄清,如果我说:
skip (0, [ 1,1,2,1 ], [ 1, 2, 3, 4]);
我需要它返回[1,2,3,1,2]。有人知道一种实现这一目标的方法吗?
您可以使用带有数组长度的提醒操作员%
(MODULO(并调整访问的索引。
function skip(start, pattern, arr) {
let idx = 0,
res = [];
pattern.unshift(start);
for (let i of pattern) {
idx += i;
res.push(arr[idx % arr.length]);
}
return res;
}
console.log(skip(0, [1, 1, 2, 1], [1, 2, 3, 4]));