起因:業務中用到了element級聯選擇器,級聯的反顯需要這樣的數據[id(父),id(父),id(當前選中)],由於后端的無能,不會遍歷找所有關聯的父節點,只能由前端來做,所以就寫了一個簡單的遞歸。
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 }