假设有如下对象数组:
let data = [
{id: 1, name: 'A', parentId: 0},
{id: 2, name: 'B', parentId: 1},
{id: 3, name: 'C', parentId: 2},
{id: 4, name: 'D', parentId: 2},
{id: 5, name: 'E', parentId: 1},
{id: 6, name: 'F', parentId: 0},
{id: 7, name: 'G', parentId: 6},
];
要求按照parentId属性对数组进行排序,可以使用如下代码:
data.sort((a, b) => {
return a.parentId - b.parentId;
});
排序后的结果如下:
[
{id: 1, name: 'A', parentId: 0},
{id: 6, name: 'F', parentId: 0},
{id: 2, name: 'B', parentId: 1},
{id: 5, name: 'E', parentId: 1},
{id: 3, name: 'C', parentId: 2},
{id: 4, name: 'D', parentId: 2},
{id: 7, name: 'G', parentId: 6},
]
可以看到,按parentId属性排序后,每个节点的子节点都出现在父节点的后面。
下一篇:按phpunit测试排序