2017-05-08 173 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); 
 
}

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