2015-04-22 36 views
0

我想在JavaScript中使用.reverse()方法顛倒數組的順序,但也試圖保留原始數組中元素的原始順序。當我將值保存到一個變量中時,我最終將原始數組中的元素進行轉置,並創建一個具有相同格式的新元素。執行這項任務的最有說服力的方法是什麼?如何在保留原始數組的原始值的同時在JavaScript中反轉數組?

var arrayOne = [1,2,3,4,5]; 
var arrayTwo = arrayOne.reverse(); 
//arrayTwo = [5, 4, 3, 2, 1] 
//arrayOne = [5, 4, 3, 2, 1] 
+2

你需要它實際上推翻了一個獨立的變量或者可能你只是從它的長度財產向後遍歷? – Rooster

+1

你必須做一個克隆。相反的方法是一種變化的方法,所以原始數組得到改變。簡單地設置另一個數組不會保留它 –

+0

請參閱http://stackoverflow.com/questions/15722433/javascript-copy-array-to-new-array關於切片方法 –

回答

6
var arrayTwo = arrayOne.slice().reverse(); 

片將克隆陣列

+2

是的。請注意,它是一個淺拷貝:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice –

+0

這個問題顯然是重複的。下次請找到dup並關閉。你有代表這樣做 – mplungjan

+0

謝謝@jcubic和拉蒙吉爾莫雷諾,我會給你一個教育我的好消息,但是正如mplungjan所說的那樣,我的代表「ONE」的代表讓我花費無數幾個小時看着數百個相關的問題,這抑制了我回歸啓蒙我的能力。我很感激。嚴重是Stack Overflow最煩人的事情。 – enterloper

相關問題