JavaScript 实现对象数组嵌套 - parentId 关联父子关系
function nest(arr, parentId) { let result = {}; arr.filter(item => item.parentId === parentId) .forEach(item => { result[item.id] = { id: item.id, name: item.name, children: nest(arr, item.id) }; }); return result; }
let arr = [ { id: 1, name: '张一', parentId: null }, { id: 2, name: '张二', parentId: 1 }, { id: 3, name: '张三', parentId: 1 }, { id: 4, name: '张四', parentId: 2 }, { id: 5, name: '张五', parentId: 2 }, { id: 6, name: '张六', parentId: 3 }, { id: 7, name: '张七', parentId: 4 }, { id: 8, name: '张八', parentId: 6 } ];
let nestedObj = nest(arr, null); // 传入null作为顶级parentId
console.log(nestedObj); // 输出嵌套对象
原文地址: https://www.cveoy.top/t/topic/mlQT 著作权归作者所有。请勿转载和采集!