我怎样才能对这个数组进行排序?
我正在尝试对来自 a 的对象数组进行分组parentId
数组的每个元素带来的级别总是不确定的,我期望的结果就是输出中的结果。
Input:
[
{
"_id": "123",
"name": "ABC",
"parentID": ""
},
{
"_id": "645",
"name": "ABC 2",
"parentID": "123"
},
{
"_id": "65",
"name": "ABC 3",
"parentID": ""
}
]
Output:
[
{
"_id": "123",
"name": "ABC",
"parentID": "",
"children": [
{
"_id": "645",
"name": "ABC 2",
"parentID": "123"
},
]
},
{
"_id": "65",
"name": "ABC 3",
"parentID": ""
}
]
感谢帮助
This https://jsfiddle.net/Bobkorinek/3sgpqf0a/6/即使对于嵌套的孩子也应该起作用:
const input = [{
"_id": "123",
"name": "ABC",
"parentID": ""
},
{
"_id": "645",
"name": "ABC 2",
"parentID": "123"
},
{
"_id": "65",
"name": "ABC 3",
"parentID": "645"
}
]
function map(data) {
const childMap = data.reduce((map, child) => {
return {
...map,
[child._id]: {
...child
}
};
}, {});
const root = [];
Object.values(childMap).forEach((child) => {
if (child.parentID) {
if (childMap[child.parentID]) {
const parent = childMap[child.parentID];
if (!parent.children) {
parent.children = [];
}
parent.children.push(child)
}
} else {
root.push(child);
}
})
return root;
}
console.log(map(input));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)