我有一个相当复杂的嵌套对象,例如:
A = {b : {c : { d : [{e:false},{g:true}] } } }
通过一些算法我找到了d
现在我有一个 A, Z = clone(A)
我希望能够修改 Z
中的 d
。我怎样才能以某种方式存储 d 的位置,以便我可以转到 Z 中的该位置并修改它。如果这是一个列表,我可以只存储索引并在同一索引处进行修改。我当然可以在树中搜索 d,但我不能假设唯一的属性名称,即使我可以,这也会很慢
有什么想法吗?
最佳答案
当您的算法找到 d
时,创建一个属性集合来指定如何找到 d
。在这种情况下,它看起来像这样
["b", "c", "d"]
然后你可以循环遍历集合来遍历Z
以获取d
的克隆:
properties = ["b", "c", "d"];
newD = Z;
for(var i = 0; i < properties.length; i++){
newD = newD[properties[i]];
}
关于Javascript - 引用嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858744/