扁平数据转换为树形
像我们做树形表格时,后端返回常常是扁平数据,并不是我们想要的,这是后我们需要把数据转换陈我们需要的
let arr = [
{id: 1, name: '部门1', pid: 0},
{id: 2, name: '部门2', pid: 1},
{id: 3, name: '部门3', pid: 1},
{id: 4, name: '部门4', pid: 3},
{id: 5, name: '部门5', pid: 4},
]
function queryChilrden(arr) { //封装成函数
let ids = []; //确保最高级的
arr.forEach((s) => {
ids.push(s.pid);
s.children = [];
arr.forEach((d) => {
if (s.id == d.pid) {
s.children.push(d);
}
});
});
id = Array.from(new Set(ids)).sort(function (a, b) {
return a - b;
});
return arr.filter((item) => item.parentId == ids[0]);
},
console.log(queryChilrden(arr))
树形树形转扁平数据
//树形数据转扁平数据
const toLine = (data) => {
return data.reduce((arr, { id, level, children = [] }) =>
arr.concat([{ id, level }], toLine(children)), [])
return result;
}