1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
function listToTree (list,idKey,parIdKey,parId) { let map = {}; let result = []; let len = list.length;
for (let i = 0; i < len; i++) { map[list[i][idKey]] = list[i]; }
for(let i=0; i < len; i++) { let itemParId = list[i][parIdKey]; if(itemParId === parId) { result.push(list[i]); continue; } if(!map[itemParId]){ continue; } if(map[itemParId].children) { map[itemParId].children.push(list[i]); } else { map[itemParId].children = [list[i]]; } } return result; }
|