2020年9月10日
代码 function getArrayTree(arrList, id, fid, children = 'children') { let map = [] arrList.forEach(item => { let up = arrList.filter(x => x[id] == item[fid]) let sit = arrList.filter(x => x[fid] == item[id]) if (sit.length) item[children] = sit if (!(up.length && !sit.length)) map.push(item) }) if (arrList.length == map.length) return map else return getArrayTree(map, id, fid)}export default getArrayTree调用方式
参数
返回树状排序后的数组,结果如下:
优点 不需要引入工具包,在utils新建个js放进去就行,轻便使用尾递归,避免堆栈超出可使用自身数组的id及父级id,不需要将数组的id重命名可自定义返回子类名称,之后引用更方便