Array.prototype.groupBy = function(callback) {
const object = {};
for(let i =0; i < this.length; i++) {
let key = callback(this[i],i,this);
if(object[key]) {
object[key].push(this[i])
} else {
object[key] = [this[i]]
}
}
return object;
}
const arr = [
{ id: 1, name: "水果", pid: 0 },
{ id: 2, name: "香蕉", pid: 1 },
{ id: 3, name: "苹果", pid: 1 },
{ id: 4, name: "蔬菜", pid: 0 },
{ id: 5, name: "白菜", pid: 4 },
{ id: 6, name: "萝卜", pid: 4 },
{ id: 7, name: "胡萝卜", pid: 6 },
{ id: 8, name: "白萝卜", pid: 6 },
]
const groupArr = arr.groupBy(item => item.pid)
arr.forEach(item => item.children = groupArr[item.id])
console.log(groupArr[0]);
最后修改:2022 年 02 月 04 日 07 : 54 PM
© 允许规范转载