JavaScript 数组转换为嵌套对象:父子关系树结构
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 result = [];
function findChildren(parent) { let children = arr.filter(item => item.parentId === parent.id); if (children.length > 0) { parent.children = children; children.forEach(child => findChildren(child)); } }
arr.forEach(item => { if (item.parentId === null) { result.push(item); findChildren(item); } });
console.log(result);
原文地址: http://www.cveoy.top/t/topic/mtLu 著作权归作者所有。请勿转载和采集!