利用深度優先遍歷和遞回
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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/60291.html
標籤:JavaScript
上一篇:JavaScript連載18-工廠模式創建物件、自定義建構式
下一篇:Vue 阻止事件冒泡
