Javascript将数组复制到新数组

jdb*_*org 51 javascript

我想从现有数组形成一个数组,所以我可以修改新数组而不影响旧数组.我意识到数组是可变的,这就是新数组影响旧数据的原因.

例如

old = ["Apples", "Bananas"];
new = old;

new.reverse();
Run Code Online (Sandbox Code Playgroud)

老也被逆转了.

在Python中,我可以做new = list(old),但是new = new Array(old);将旧列表放在列表中.

Ben*_*aum 107

您可以使用以下.slice方法:

var old = ["Apples", "Bananas"];
var newArr = old.slice(0);
newArr.reverse(); 
// now newArr is ["Bananas", "Apples"] and old is ["Apples", "Bananas"]
Run Code Online (Sandbox Code Playgroud)

Array.prototype.slice返回数组的一部分的浅表副本.给它0作为第一个参数意味着你要返回所有元素的副本(从索引0开始)

  • 您可以使用`old.slice()`,因为0是默认值.见[slice()docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) (14认同)

Jar*_*Par 9

请尝试以下方法

newArray = oldArray.slice(0);
Run Code Online (Sandbox Code Playgroud)