我想從現有數組中形成一個數組,因此我可以在不影響舊數組的情況下修改新數組。我意識到數組是可變的,這就是爲什麼新數組會影響舊數組。Javascript複製數組到新數組
E.g.
old = ["Apples", "Bananas"];
new = old;
new.reverse();
老也被顛倒了。
在Python中,我可以只做new = list(old)
,但是做new = new Array(old);
會將舊列表放入列表中。
我想從現有數組中形成一個數組,因此我可以在不影響舊數組的情況下修改新數組。我意識到數組是可變的,這就是爲什麼新數組會影響舊數組。Javascript複製數組到新數組
E.g.
old = ["Apples", "Bananas"];
new = old;
new.reverse();
老也被顛倒了。
在Python中,我可以只做new = list(old)
,但是做new = new Array(old);
會將舊列表放入列表中。
可以使用.slice
方法:
var old = ["Apples", "Bananas"];
var newArr = old.slice(0);
newArr.reverse();
// now newArr is ["Bananas", "Apples"] and old is ["Apples", "Bananas"]
Array.prototype.slice返回一個陣列的一部分的淺表副本。給它0作爲第一個參數表示要返回的所有元素的副本(從索引0開始即是)
謝謝!我會盡力回答。 – jdborg
沒問題,很高興幫助。 –
您可以使用'old.slice()',因爲0是默認值。參見[slice()docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) –
請嘗試以下
newArray = oldArray.slice(0);
在ES6您可以使用傳播語法示例: ' var arrOld = [「蘋果」,「香蕉」]; var arrNew = [... arrOld];' – GibboK