我需要我的函数,如果数组结束,则跳过数组项以返回第一项

时间:2018-03-28 13:37:34

标签: javascript arrays

我有这个功能,以预定的方式跳过数组项目,以便能够循环自己,例如,如果我告诉它从数组中的最后一项跳转两次,我需要它能够向前跳两个项目登陆该阵列中的第一个项目 这是:

 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]。有没有人知道实现这一目标的方法???

1 个答案:

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