2017-05-08 110 views
0

我有一个阵列看上去就像是:变更指令每次循环迭代

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); 
} 
+0

您是否试过编写一个循环,将每个项目向前移动一次?即使它不起作用,请包括它。 – Ryan

+0

我可以做'数字[i] =数字[i + 1]',但有错误,数组变大..在每次执行此循环后 – chwzr

回答

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) 
 
}

+0

谢谢这工作只是伟大的:) – chwzr

+0

不客气。 –

1

另一种可能除了内纳德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); 
 
}

但是,前面的答案更优雅。