나무 구조의 임의의 노드 를 가 져 오 는 숲 경로

//             ,           。
function getPathByKey(value, key, arr) {
    let temppath = [];
    try {
        function getNodePath(node){
          //        push   ,     node,    node    children
          temppath.push(node);
          //         ,  throw     
          if (node[key] === value) {
            throw ("GOT IT!");
          }
          if (node.children && node.children.length > 0) {
            for (var i = 0; i < node.children.length; i++) {
              getNodePath(node.children[i]);
            }

            //                ,          
            temppath.pop();
          }else {

            //       ,            
            temppath.pop();
          }
        }
        for (let i = 0; i < arr.length; i++) {
            getNodePath(arr[i]);
        }
    } catch (e) {
      return temppath;
    }
}

좋은 웹페이지 즐겨찾기