数组操作代码片段1
2019-07-19 本文已影响0人
糖醋里脊120625
export
function toTreeData(data, id, pid, name) {
// 建立个树形结构,需要定义个最顶层的父节点,pid是0
let parent = [];
for (let i = 0; i < data.length; i++) {
// console.log(data[i][pid])
if (data[i][pid] !== 0) {} else {
let obj = {
label: data[i][name],
id: data[i][id],
children: []
};
parent.push(obj); //数组加数组值
}
}
children(parent);
// 调用子节点方法,参数为父节点的数组
function children(parent) {
// console.log(parent)
if (data.length !== 0) {
for (let i = 0; i < parent.length; i++) {
for (let j = 0; j < data.length; j++) {
if (parent[i].id == data[j][pid]) {
let obj = {
label: data[j][name],
id: data[j][id],
children: []
};
parent[i].children.push(obj);
}
}
children(parent[i].children);
}
}
}
return parent;
}
//树形列表
getTreeData() {
getTreeMenu('').then(res = >{
this.loading = false;
let treeList = res.result;
const userStr = JSON.parse(treeList); //从一个字符串中解析出json对象
this.treeData = toTreeData(userStr, "id", "pId", "name")
//this.chils = JSON.stringify(result, null, '\t');//从一个对象解析出字符串
})
},