Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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沿数组中的所有项移动X个数_Javascript_Arrays - Fatal编程技术网

JavaScript沿数组中的所有项移动X个数

JavaScript沿数组中的所有项移动X个数,javascript,arrays,Javascript,Arrays,我想创建一个接受2个参数的函数,第一个参数是数组,第二个参数是移动所有数组项的索引位置数 例如,如果我通过exampleFunc([1,2,3,4,5],2),它应该将所有项向右移动两处,因此返回[4,5,1,2,3]。我已经做了以下几点,但是有没有更雄辩/有效的方法?另外,如果我想反转方向,压缩成一个函数,而不是下面的两个函数,除了在每个函数的不同部分加上条件外,还有什么建议吗?尝试使用.splice()方法,但实际上没有成功。任何帮助都将不胜感激 const moveArrayPositi

我想创建一个接受2个参数的函数,第一个参数是数组,第二个参数是移动所有数组项的索引位置数

例如,如果我通过exampleFunc([1,2,3,4,5],2),它应该将所有项向右移动两处,因此返回[4,5,1,2,3]。我已经做了以下几点,但是有没有更雄辩/有效的方法?另外,如果我想反转方向,压缩成一个函数,而不是下面的两个函数,除了在每个函数的不同部分加上条件外,还有什么建议吗?尝试使用.splice()方法,但实际上没有成功。任何帮助都将不胜感激

const moveArrayPositionRight=(数组,移动位置)=>{
设newArray=newArray(Array.length);
对于(i=0;ilog(moveArrayPositionRight([2,4,6,8,10,2]);//输出:[8,10,2,4,6]
您有要将数组切片并重新排列的位置索引,因此可以使用
.slice
来精确执行此操作-提取需要重新排列的子数组,并将其放入新数组中:

const moveArrayPositionRight=(数组,移动位置)=>[
…array.slice(array.length-movePositions),
…array.slice(0,array.length-movePositions)
];
log(moveArrayPositionRight([2,4,6,8,10,2]);//输出:[8,10,2,4,6]
log(moveArrayPositionRight([2,4,6,8,10,3]);//预期[6,8,10,2,4]