我需要帮助来理解 JSON [引用问题] 的行为。
var obj = {"newData":["Hello"]};
obj["oldData"] = obj.newData;
// Here added new key "oldData"
// Expected output is coming: {"newData":["Hello"],"oldData":["Hello"]}
obj["newData"].push("hi");
// On updating "newData"
// Excepted Output : {"newData":["Hello","hi"],"oldData":["Hello"]}
// But Actual Output is coming as : {"newData":["Hello","hi"],"oldData":["Hello","hi"]}
如何解决这个问题。 如何避免更新 oldData 字段。 jsfiddle example
与对象相同的问题,jsfiddle example for objects
最佳答案
作者:obj["oldData"] = obj.newData;
您创建对您的 newData
的引用数组,因此 newData
中的每个更改将影响oldData
大批。使用obj["oldData"] = obj.newData.slice();
相反,创建数组的克隆,以便有两个不同的数组。
关于javascript - 在Javascript中更新JSON数据的引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366068/