function filterArray(data, pid) {
let vm = this;
var tree = [];
var temp;
for (var i = 0; i < data.length; i++) { //循环数组
if (data[i].pid == pid) { // 判断数组的pid是否等于传进来的pid
var obj = data[i];
temp = filterArray(data, data[i].id); //如果等于就递归,将data作为源,id作为pid
if (temp.length > 0) { //如果得到的长度大于0
obj.children = temp; //给它赋值
}
tree.push(obj); //push到新的数组中
}
}
return tree;
};
var list =[{
"id": 43,
"menu_name": "测试任务",
"menu_href": "6",
"menu_icon": "el-icon-lx-edit",
"tree_sort": 600,
"tree_level": 1,
"is_show": 1,
"status": 0,
"remarks": "",
"pid": null
},
{
"id": 44,
"menu_name": "待领样",
"menu_href": "waitGetSamples",
"menu_icon": "",
"tree_sort": 610,
"tree_level": 2,
"is_show": 1,
"status": 0,
"remarks": "",
"pid": 43
},
{
"id": 45,
"menu_name": "待领样",
"menu_href": "waitGetSamples",
"menu_icon": "",
"tree_sort": 610,
"tree_level": 2,
"is_show": 1,
"status": 0,
"remarks": "",
"pid": 43
}];
console.log( filterArray(list) )