js实现-将平铺数据转换为树形结构

时间:2025-04-07 11:44:55
// 平铺数据 const list = [ { id: 1, pid: 0, name: 'one'}, { id: 2, pid: 1, name: 'two'}, { id: 3, pid: 1, name: 'three'}, { id: 4, pid: 2, name: 'four'}, ] // 以下转换 const deleteIds = [] list.forEach((i) => { i.children = [] list.forEach((item) => { // 判断是否有父级(有:将其push到父级的children里,且将该id推进要删除的ids里) if (item.pid === i.id) { i.children.push(item) deleteIds.push(item.id) } }) // 如果children为空,则删除该children if (i.children.length === 0) { delete i.children } }) // 过滤在deleteIds的id const result = list.filter(i => !deleteIds.includes(i.id)) console.log(list, result)