zoukankan      html  css  js  c++  java
  • js tree 根据子节点找到所有父节点

    利用深度优先遍历和递归

    var acceptUnitNodes = null;//接收单位树形数据
     function  findParentNode(ids){ //ids 是子节点数组
        var parentNodes = [];//所有父节点
     	var forfun = function (id,nodes) {
    		for(var i=0;i<nodes.length;i++){
    			var currentNode = nodes[i];
    			if(currentNode.id == id){
    				return currentNode.id;
    			}else if(currentNode.children){
    				var validNodeId = forfun(id,currentNode.children);
    				if(validNodeId&&parentNodes.indexOf(validNodeId)<0){
    					parentNodes.push(validNodeId)
    				}
    				if(validNodeId){
    					return currentNode.id;
    				}
    
    			}
    
    		}
    	}
    
    	$.each(ids,function (i,item) {
    		// selectedValues.push(item);
    		var validNodeId = forfun(item,acceptUnitNodes);
    		if(validNodeId&&parentNodes.indexOf(validNodeId)<0){
    			parentNodes.push(validNodeId);
    		}
    	})
    
    	 console.info(parentNodes);
    	
    
    
     	return parentNodes;
     }
    
    
    
  • 相关阅读:
    package.json文件
    Node.js中模块加载机制
    第三方模块
    系统模块
    Node.js快速入门及模块化开发
    String 的扩展方法
    ES6 的内置对象扩展
    箭头函数
    解构赋值
    let、const、var 的区别
  • 原文地址:https://www.cnblogs.com/qingmiaokeji/p/13167691.html
Copyright © 2011-2022 走看看