把数组对象 转化成树结构
1.例如我们经常用的树结构
dataArr: [//树形结构例子
{
id: "101",
label: "03黄金一代",
children: [
{
label: "李四",
id: "10003",
},
],
},
{
id: "102",
label: "05白金一代",
children: [
{
label: "王五",
id: "10101",
},
{
label: "刘德华",
id: "10102",
},
{
label: "邓超",
id: "10103",
},
],
},
],
2.后台返回的数据格式如下:
infoArr: [//后台返回的数据
{
asgnName: "李四",
asgnNo: "10003",
asgnDeptName: "03黄金一代",
asgnDeptNo: "101",
},
{
asgnName: "王五",
asgnNo: "10101",
asgnDeptName: "05白金一代",
asgnDeptNo: "102",
},
{
asgnName: "刘德华",
asgnNo: "10102",
asgnDeptName: "05白金一代",
asgnDeptNo: "102",
},
{
asgnName: "邓超",
asgnNo: "10103",
asgnDeptName: "05白金一代",
asgnDeptNo: "102",
},
],
```3.封装方法:
function treeNode(data) {
var newData = [];
var newInfo = {};
for (let i = 0; i < data.length; i++) {
if (!newInfo[data[i].asgnDeptNo]) {
newInfo[data[i].asgnDeptNo] = {
label: data[i].asgnDeptName,
id: data[i].asgnDeptNo
};
newInfo[data[i].asgnDeptNo]["children"] = [
{
label: data[i].asgnName,
id: data[i].asgnNo
},
];
newData.push(newInfo [data[i].asgnDeptNo]);
} else {
try {
if (newInfo [data[i].asgnDeptNo].id == data[i].asgnDeptNo) {
newInfo[data[i].asgnDeptNo]["children"].push({
label: data[i].asgnName,
id:data[i].asgnNo
});
}
} catch (error) {
console.log(error);
}
}
}
return newData;
},
4.调用此方法就行了