【问题标题】: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()
  • 阅读值类型与引用类型,了解发生这种情况的原因。

标签: javascript arrays


【解决方案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));

这也适用于扁平物体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 2019-08-18
    • 2017-06-27
    • 2014-03-08
    • 2011-01-27
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多