有一个需求,当你从后端拿到一个树状图的时候,有些子级没数据,这时就需要我们处理一下数据,当然了,如果第一层底下的第二层没数据,第二层底下的所有都没数据,那这一层都不需要。
我的写法,先删除最后一层,然后以此类推,往上删除。使用递归。

deleteTreeAreaData(node) {for (let i = node.length - 1; i >= 0; i--) {const item = node[i];if (!item.hasOwnProperty('children')) continue;if (item.children.length === 0 && item.data.dataType == "area") {node.splice(i, 1);continue;}this.deleteTreeInvalidData(item.children);}},deleteTreeInvalidData(tree) {for (let i = tree.length - 1; i >= 0; i--) {const item = tree[i];if (!item.hasOwnProperty('children')) continue;if (item.children.length === 0 && item.data.dataType == "unit") {tree.splice(i, 1);continue;}this.deleteTreeInvalidData(item.children);}},

可以优化,但是我没优化。