Javascript 重新组织对象数组的最佳方法
我需要重新组织和数组的链接对象的id只有一个树对象。深度级别未知,因此我认为应该递归地进行。最有效的方法是什么 我有下一个对象数组: 康斯特·阿罗布=[ { id:1, 儿童:[ { 身份证号码:2 }, { 身份证号码:3 } ] }, { id:2, 儿童:[ { 身份证号码:4 }, { 身份证号码:5 } ] }, { id:3, 儿童:[ { 身份证号码:6 } ] }, { 身份证号码:4 } ] 我希望为仅具有一个对象(如树)的对象重新构造: 常量treeObj={ id:1, 儿童:[ { id:2, 儿童:[ { 身份证号码:4 }, { 身份证号码:5 } ] }, { id:3, 儿童:[ { 身份证号码:6 } ] } ] }Javascript 重新组织对象数组的最佳方法,javascript,arrays,json,recursion,Javascript,Arrays,Json,Recursion,我需要重新组织和数组的链接对象的id只有一个树对象。深度级别未知,因此我认为应该递归地进行。最有效的方法是什么 我有下一个对象数组: 康斯特·阿罗布=[ { id:1, 儿童:[ { 身份证号码:2 }, { 身份证号码:3 } ] }, { id:2, 儿童:[ { 身份证号码:4 }, { 身份证号码:5 } ] }, { id:3, 儿童:[ { 身份证号码:6 } ] }, { 身份证号码:4 } ] 我希望为仅具有一个对象(如树)的对象重新构造: 常量treeObj={ id:1, 儿
每个对象都有其他许多属性。您可以对所有子对象使用递归映射函数 const arrObj=[{id:1,子项:[{id:2},{id:3}]},{id:2,子项:[{id:4},{id:5}]},{id:3,子项:[{id:6},{id:4}]; 常数res=arrObj[0]//假设第一个元素是根 res.children=res.children.mapfunction getChildrenobj{ const child=arrObj.findx=>x.id==obj.id; ifchild?.children.children=child.children.mapgetChildren; 返回子对象| | obj; };
console.logres;是的,这是我的第一个解决方案,但我不确定它是否最有效。与节点数相比,该解决方案在线性时间内运行。实际上没有任何方法可以降低时间复杂度,因为总是需要遍历所有节点。