js----遞歸獲取父節點


話不多說,直接上代碼:

var list = [
  {id:1,pid:0,name:'中國'},
  {id:2,pid:0,name:'美國'},
  {id:3,pid:1,name:'雲南'},
  {id:4,pid:3,name:'昆明'},
  {id:5,pid:4,name:'盤龍區'},
  {id:6,pid:5,name:'北辰小區'},
];
function findAncestry (arr, id) {
  var temp = []
  var forFn = function (list, id) {
    for (var i = 0; i < list.length; i++) {
      var item = list[i]
      if (item.id === id) {
        temp.push(item)
        forFn(list, item.pid)
        break
      } else {
        if (item.children) {
          forFn(item.children, id)
        }
      }
    }
  }
  forFn(arr, id)
  return temp
}
var allParent = findAncestry(list,6);
console.log(allParent);

打完收工。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM