我有两个数组: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()只是通过插入或删除元素来修改原始数组。

10-05 21:04