如果阵列结束,我需要跳过数组项目的功能才能返回到第一个项目



我有一个以预定方式跳过数组项的功能,例如,如果我告诉我告诉阵列中的最后一个项目,我需要它,我需要它能够跳到前方两个项目,并降落在该数组中的第一项在这里是:

 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]));

最新更新