【发布时间】:2014-12-06 03:35:52
【问题描述】:
示例: http://jsfiddle.net/yeehawjared/bawv0790/
我正在构建一个打开网页的应用程序,加载大型数据树结构的 JSON。 TreeModel.js 解析得很好,一切都很好。
随着时间的推移,浏览器会以较小的数据树的形式接收更新。我正在尝试将additionalData 与masterTree 结合起来。我想不出一种同时走两个节点并进行逐节点比较的方法。如果可以的话,聚合node.model.x 属性并添加子元素(如果它们不存在)会很容易。
在下面的代码中,我浏览了附加数据 - 但我不知道如何有效地将新节点组合到 masterTree。有人可以用伪代码帮助我的方法或为我指明正确的方向吗?不断更新我的masterTree 的最佳方式是什么?
非常感谢。
var tree = new TreeModel();
var masterTree = tree.parse(data1);
var additionalData = tree.parse(data2);
additionalData.walk(function (node) {
// compare additionalData to the masterTree
if (node.model.id == masterTree.model.id) {
console.debug('match, combine the attributes')
} else {
// add the additional node to the materTree
}
});
【问题讨论】:
标签: javascript performance tree treemodel