如何创建数组的副本? [复制]
Posted
技术标签:
【中文标题】如何创建数组的副本? [复制]【英文标题】:How to create copy of array? [duplicate] 【发布时间】:2017-01-14 06:46:37 【问题描述】:我有数组:
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);
【问题讨论】:
试试array.slice()
。
阅读值类型与引用类型,了解发生这种情况的原因。
【参考方案1】:
您需要使用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);
【讨论】:
@Dave :很高兴为您提供帮助【参考方案2】:如果是没有循环引用的平面数组,可以使用
var copied_array = JSON.parse(JSON.stringify(original_array));
这也适用于扁平物体。
【讨论】:
以上是关于如何创建数组的副本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章