我有一个数据数组,需要确保元素按照嵌套(父亲、孩子)排序,并且在顶层和嵌套层次中都按字母顺序紧随其后。
初始数据:
const arr = [
{
id: 0,
name: 'A',
parentId: null,
},
{
id: 78,
name: 'B',
parentId: 77,
},
{
id: 1715,
name: 'C',
parentId: 78,
},
{
id: 77,
name: 'D',
parentId: null,
},
{
id: 1716,
name: 'E',
parentId: 1715,
},
{
id: 76,
name: 'F',
parentId: null,
},
];
我的方法不起作用,因为它没有考虑元素的额外嵌套。
function sortData() {
const result = [];
arr.sort((a, b) => {
return a.name.localeCompare(b.name);
});
for (const element of arr) {
if (!element.parentId) {
const children = folders.filter((el) => el.parentId === element.id);
result.push(element, ...children);
}
}
return result;
}
我需要获取哪些数据:
const arr = [
{
id: 0,
name: 'A',
parentId: null,
},
{
id: 77,
name: 'D',
parentId: null,
},
{
id: 78,
name: 'B',
parentId: 77,
},
{
id: 1715,
name: 'C',
parentId: 78,
},
{
id: 1716,
name: 'E',
parentId: 1715,
},
{
id: 76,
name: 'F',
parentId: null,
},
];
使用我的方法,我可以获得哪些数据:
const arr = [
{
id: 0,
name: 'A',
parentId: null,
},
{
id: 77,
name: 'D',
parentId: null,
},
{
id: 78,
name: 'B',
parentId: 77,
},
{
id: 76,
name: 'F',
parentId: null,
}
];