如何创建JSON对象数组的副本

时间:2015-01-17 21:27:14

标签: jquery json

我一直在试图弄清楚如何制作一个JSON对象数组的副本,可以在不更改原始数据的情况下对其进行修改。我确实看到很多关于默认情况下作为引用传递的对象的讨论,但我不明白如何避免这种默认行为。

下面的示例jQuery不是真正的代码,但我认为它说明了我想要实现的目标。任何人都可以帮助我理解如何编写以下示例代码,以便_copy可以修改_master未被修改?

// Master - should never get modified
_master = [ 
    Object { id=0, name="Charlie", city="Memphis", state="TN" },
    Object { id=1, name="Steve", city="Chicago", state="IL" } 
];

// Copy of Master that can be modified
_copy = _master;

// Modify _copy only - leave _master unmodified
_copy[0].name = "Charles";

2 个答案:

答案 0 :(得分:3)

您可以使用:

var copyArray = JSON.parse(JSON.stringify(someArray));

答案 1 :(得分:2)

_copy=JSON.parse (JSON.stringify (_master));

是一种快速的方法。编码将_master转换为变量的字符串表示形式,解析器将其消耗并将其转换回数组。

将变量转换为字符串后,任何引用/内存连接都会被切断。