例子: 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
}
});