我想从现有数组形成一个数组,这样我就可以在不影响旧数组的情况下修改新数组。我意识到数组是可变的,这就是新数组影响旧数组的原因。
例如
old = ["Apples", "Bananas"];
new = old;
new.reverse();
旧的也被颠倒了。
在 Python 中,我可以只做new = list(old)
,但做new = new Array(old);
将旧列表放入列表中。
我想从现有数组形成一个数组,这样我就可以在不影响旧数组的情况下修改新数组。我意识到数组是可变的,这就是新数组影响旧数组的原因。
例如
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 开始)
尝试以下
newArray = oldArray.slice(0);