【发布时间】:2012-12-14 19:42:11
【问题描述】:
这是我的数据结构:
{ projects: [
{ revisions: [
{ files: [] },
],
}
],
user: {}
}
在这里转到 jsFiddle:http://jsfiddle.net/winduptoy/EXdDy/
我很想递归地创建对象父级及其ids 的 JSON 层次结构。检查您的控制台。查看projects[0].revisions[0]._idTree,其中包含projects._id 和revisions 作为projects 的子,正如预期的那样。现在查看projects[0].revisions[0].files[0]._idTree,它包含projects.files 作为projects.revisions 的兄弟,而files 应该是子 projects.revisions 的 em>。我该如何解决这个问题?
【问题讨论】:
-
您永远不会更改传递给 recurseTree 函数的 newKey 和 newId 参数。
-
你确定吗?我想我会的。往下看两行,我自己递归调用
attachIDs(data[key][item], ...),所以在第二次递归调用中,data其实就是data[key][item]。 -
我的意思是在 recurseTree 的主体内部,它使用相同的第二个和第三个参数递归地调用自己。
-
没错。如果
tree[key]是一个对象,我想在应用newKey和newId之前继续深入该对象的最深层次,这似乎无关紧要,因为这些只是我的新属性将申请。 -
看起来问题出在我处理
recurseTree()函数的方式上。郑慧在这里发了一个更好的版本:stackoverflow.com/questions/14087914/…
标签: javascript arrays json object recursion