Javascript —— 线转树 or 树转线
线树互转:
const array2tree = (list,key,extendKey)=>{
var map={};
list.forEach((item)=>{
if(!map[item[key]]){
map[item[key]]=item;
}
});
list.forEach((item)=>{
if(!!item[extendKey]){
map[item[extendKey]].children ? map[item[extendKey]].children.push(item) : map[item[extendKey]].children=[item];
}
});
return list.filter(function(item){
if(!item[extendKey]){
return item;
}
});
},
tree2array = (list, key) => {
return list.reduce((con, item) => {
var callee = arguments.callee;
con.push(item);
if (item[key] && item[key].length >0)
item[key].reduce(callee, con);
return con;
}, []).map(function(item){
item[key] = [];
return item;
})
}

浙公网安备 33010602011771号