我正在尝试使用D3中的树层次结构并卡住了。我以为我正在构建JSON,但是当我在Developer's Tool中查看对象时,我看到以下内容:
chrome http://s10.postimage.org/yo3yshmax/chrome.png
注意第一行显示dependents数组有0长度,但扩展后,你可以清楚地看到dependents有3个对象。当我对其进行字符串化时,我得到以下内容:
{"attributes":{"id":0,"name":"root"},"dependents":[]}
知道可能出现什么问题吗?谢谢!
答案 0 :(得分:6)
当您在记录对象后更改对象时,通常会发生此问题,因为Chrome在您记录对象时不会对对象进行深层复制,而只是存储引用。
树不是立即构建的,而是仅在需要时构建,有时它基于更新的值。
如果您的对象足够轻,如果您真的想在记录时看到该值,可以自己克隆它:
console.log(JSON.parse(JSON.stringify(myobject)));
如果您的对象很大或递归,您可能会发现克隆它有点困难。就个人而言,我有自己的工具JSON.prune.log。
由于忽略了浏览器的优化会产生成本,因此您通常应该只考虑这种行为,并且如果您想确定其记录时间值,则只记录原语...