起因:业务中用到了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
}
来源:https://www.cnblogs.com/AaronLs/p/12654706.html