我有这个功能,以预定的方式跳过数组项目,以便能够循环自己,例如,如果我告诉它从数组中的最后一项跳转两次,我需要它能够向前跳两个项目登陆该阵列中的第一个项目 这是:
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]。有没有人知道实现这一目标的方法???
答案 0 :(得分:0)
您可以将reminder operator %
(模数)与数组的长度一起使用,并调整访问的索引。
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]));