起因:业务中用到了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 }