Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要一个函数,如果数组结束,它将跳过数组项返回到第一个项_Javascript_Arrays - Fatal编程技术网

Javascript 我需要一个函数,如果数组结束,它将跳过数组项返回到第一个项

Javascript 我需要一个函数,如果数组结束,它将跳过数组项返回到第一个项,javascript,arrays,Javascript,Arrays,我有一个函数,它以预先确定的方式跳过数组项,以便能够循环自身。例如,如果我告诉它从数组中的最后一个项跳两次,我需要它能够跳到前面的两个项,并落在该数组中的第一个项上 这是: function skip (start, pattern, arr) { let idx = 0, res = [ ]; pattern.unshift (start); for (let i of pattern) { idx += i; re

我有一个函数,它以预先确定的方式跳过数组项,以便能够循环自身。例如,如果我告诉它从数组中的最后一个项跳两次,我需要它能够跳到前面的两个项,并落在该数组中的第一个项上 这是:

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

您可以使用数组长度的模,并调整访问的索引

函数skipstart、模式、arr{ 设idx=0, res=[]; pattern.unshiftstart; 让我来看看图案{ idx+=i; res.pusharr[idx%arr.length]; } 返回res; }
console.logskip0[1,1,2,1],[1,2,3,4];最后一个项目中的2个项目不是以第一个项目结束,而是以第二个项目结束,如果你走一整圈的话。第一个项目的重置从何而来,如何确定?对不起,我指的是第一个索引的项目