function updateCount(node) {
if (node.children) {
node.children.forEach(child => {
updateCount(child);
node.count += child.count;
});
}
}
data.forEach(root => {
updateCount(root);
});
思路:递归只能做到当层次的累加数据,所以还需要配合遍历去累加所有层次的count数据
如果上面的方法看起来难以理解,可以看一下下面的拆解方法:
data.forEach((item) => {
if (item.children) {
item.children.forEach((child) => {
if (child.children) {
child.children.forEach((inner) => {
if (inner.children) {
inner.children.forEach((last) => {
if (last.children) {
//如果这里还有children,继续走上面的方法
console.log("last");
}
inner.count += last.count;
});
}
child.count += inner.count;
});
}
item.count += child.count;
});
}
});