1、递归实现
var data = [{
id: 1, name: '北京',parent: 0
},{
id: 2, name: '天津',parent: 0
},{
id: 3, name: '上海',parent: 0
},{
id: 4, name: '河北',parent: 0
},{
id: 5, name: '河南',parent: 0
},{
id: 6, name: '衡水',parent: 4
},{
id: 7, name: '沧州',parent: 4
},{
id: 8, name: '保定',parent: 4
},{
id: 9, name: '郑州',parent: 5
},{
id: 10, name: '桃城区',parent: 6
}];
function filterArray(data, parent) {
var tree = [];
var temp;
for (var i = 0; i < data.length; i++) {
if (data[i].parent == parent) {
var obj = data[i];
temp = filterArray(data, data[i].id);
if (temp.length > 0) {
obj.children = temp;
}
tree.push(obj);
}
}
return tree;
};
var treeData = filterArray(data,0);
console.log(treeData);
2、reduce实现