关于javascript:根据计数将最后一项推送到数组中的第一项

Push last item to first in an array based on a count

本问题已经有最佳答案,请猛点这里访问。

我有一个阵列,

1
 var myArray = [ 1,2,3,4,5 ]

和可变计数,

1
var count = 5

伪代码:

1
2
   if count = 1, output myArray = [5,1,2,3,4]  
   if count = 2, then myArray = [ 4,5,1,2,3]

等等……

我如何才能在不使用循环的情况下实现这一点?


您可以从最后一部分和第一部分的数组的末尾使用负索引进行切片,然后concat一个新数组。

1
2
3
4
5
6
7
8
function move(array, i) {
    return array.slice(-i).concat(array.slice(0, -i));
}

var array = [1, 2, 3, 4, 5];

console.log(move(array, 1)); // [5, 1, 2, 3, 4].
console.log(move(array, 2)); // [4, 5, 1, 2, 3]
1
.as-console-wrapper { max-height: 100% !important; top: 0; }


pop删除数组的最后一项,用unshift在数组开始时添加。

1
2
3
4
5
6
const count = 2;
const myArray = [ 1,2,3,4,5 ];
for (let i = 0; i < count; i++) {
  myArray.unshift(myArray.pop());
}
console.log(myArray);