Javascript将数组复制到新数组

时间:2013-03-30 19:15:18

标签: javascript

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

E.g。

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

new.reverse();

老也被逆转了。

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

2 个答案:

答案 0 :(得分:107)

您可以使用.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开始)

答案 1 :(得分:9)

尝试以下

newArray = oldArray.slice(0);