我有两个数组:ArrayA和ArrayB。我需要将ArrayA复制到ArrayB中(而不是创建引用),并且我一直在使用.splice(0)
,但我注意到它似乎从初始数组中删除了元素。
在控制台中,当我运行以下代码时:
var ArrayA = [];
var ArrayB = [];
ArrayA.push(1);
ArrayA.push(2);
ArrayB = ArrayA.splice(0);
alert(ArrayA.length);
警报显示为0 。
.splice(0)
我在做什么错?感谢您的见解。
最佳答案
您要使用slice()
(MDN docu)而不是splice()
(MDN docu)!
ArrayB = ArrayA.slice(0);
slice()
保持原始数组不变,仅创建一个副本。另一方面,
splice()
只是通过插入或删除元素来修改原始数组。