如何创建数组副本?

时间:2016-09-06 18:09:43

标签: javascript arrays

我有阵列:

var array = ["a", "b", "c"];

我需要将此数组保存到另一个变量

var save = array;

现在我需要从save第一个索引进行拼接,但是当我尝试时,会从两个数组中删除索引。

var array = ["a", "b", "c"];
var save = array;

save.splice(0, 1);
console.log(array);
console.log(save);

2 个答案:

答案 0 :(得分:7)

您需要使用Array#slice复制数组,否则save保存对原始数组的引用(两个变量都指向同一个数组)。

var save = array.slice();



var array = ["a", "b", "c"];
var save = array.slice();

save.splice(0, 1);
console.log(array);
console.log(save);




答案 1 :(得分:0)

如果它是没有循环引用的平面数组,则可以使用

var copied_array = JSON.parse(JSON.stringify(original_array));

这也适用于扁平物体。