虽然很多涉及算法的处理的业务都是后端完成的,但是有些时候在数据量小时,前端也会处理相关的逻辑,在这个过程中也能对算法有一定的提升。给一个树,求解某个节点在树中的深度,就是现在讨论的内容。
// 根据id计算深度
getNodeDeep(tree, key) {
if (tree.length === 0) return;
let index = tree.findIndex(item => item.id === key);
this.nodeDeep++;
if (index > -1) {
return;
}
let arr = [];
tree.forEach(item => {
if (item.children && item.children.length !== 0) {
arr.push(...item.children);
}
});
this.getNodeDeep(arr, key);
},
注意:代码是使用的vue2的写法,输入整个的树状数据结构,key值用的id