使用JS求解节点在树中的深度

74 阅读1分钟

虽然很多涉及算法的处理的业务都是后端完成的,但是有些时候在数据量小时,前端也会处理相关的逻辑,在这个过程中也能对算法有一定的提升。给一个树,求解某个节点在树中的深度,就是现在讨论的内容。

// 根据id计算深度  
    getNodeDeep(tree, key) {  
      if (tree.length === 0return;  
      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