美文网首页
递归遍历树结构

递归遍历树结构

作者: 冯阳阳的博客 | 来源:发表于2019-05-08 11:09 被阅读0次
    export function getFirstNode(data, field, params) {
      let node = null;
      return function getNodebyParams(data, field, params) {
        //1.第一层 root 深度遍历整个data
        for (var i = 0; i < data.length; i++) {
          if (node) {
            break;
          }
          var obj = data[i];
          if (obj[field] === params) {
            //找到了与params匹配的节点,结束递归
            node = obj;
            break;
          } else {
            if (obj.children && obj.children.length) {
              //递归往下找
              getNodebyParams(obj.children, field, params);
            } else {
              //跳出当前递归,返回上层递归
              continue;
            }
          }
        }
        //6.返回结果obj
        return {
          node: node
        };
      };
    }
    

    调用:

    import { getFirstNode } from 'common/js/utils/utils';
    let node = getFirstNode()(result[0].children, 'location', 'MENU1');
    console.log(node)
    

    相关文章

      网友评论

          本文标题:递归遍历树结构

          本文链接:https://www.haomeiwen.com/subject/iafmoqtx.html