每次循环迭代改变数组元素的顺序

时间:2017-05-08 18:29:21

标签: javascript arrays loops

我有一个看起来像这样的数组:

numbers = [0, 1, 2, 3, 4, 5]

现在我有一个for循环,我希望在每次迭代后,数组的顺序会改变如下:

[0, 1, 2, 3, 4, 5]
[5, 0, 1, 2, 3, 4]
[4, 5, 0, 1, 2, 3]
[3, 4, 5, 0, 1, 2] .....

如何存档?

for (i=0; i <5; i++){
  //change order of array?
  console.log(numbers);
}

2 个答案:

答案 0 :(得分:5)

您可以使用unshift()pop()

var numbers = [0, 1, 2, 3, 4, 5]

for (var i=0; i < 5; i++) {
  numbers.unshift(numbers.pop());
  console.log(numbers)
}

答案 1 :(得分:1)

除了Nenad Vracar的答案之外,另一种可能是使用splice方法:

var numbers = [0, 1, 2, 3, 4, 5]

for (var i=0; i < 5; i++) {
  numbers.unshift(numbers.splice(numbers.length - 1, 1)[0]);
  console.log(numbers);
}

但是,之前的答案更为优雅。