gpt4 book ai didi

javascript - 使用 lodash 按父 ID 对平面列表进行排序

转载 作者:行者123 更新时间:2023-11-29 21:38:31 25 4
gpt4 key购买 nike

我有一个对象的 JSON 列表,其中包含 ID、名称和对父 ID 的引用:

const myList = [
{
id: 1,
name: "name1",
parentId: null
},
{
id: 5,
name: "name5",
parentId: 32
},
{
id: 32,
name: "name32",
parentId: 48
},
{
id: 48,
name: "name48",
parentId: 1
}
]

我想根据父 ID 对该列表进行分层排序:

[
{
id: 1,
name: "name1",
parentId: null
},
{
id: 48,
name: "name48",
parentId: 1
},
{
id: 32,
name: "name32",
parentId: 48
},
{
id: 5,
name: "name5",
parentId: 32
}
]

我是 Javascript 编程和 lodash 的新手,我想知道是否有一种简单的方法可以使用 lodash 对该列表进行排序?

提前致谢。本杰

最佳答案

我找到了一个使用 lodash 的解决方案。不确定它是否最好,但它确实有效。

var parentId = null;
var sortedList = [];
var byParentsIdsList = _.groupBy(myList, "parentId"); // Create a new array with objects indexed by parentId

while (byParentsIdsList[parentId]) {
sortedList.push(byParentsIdsList[parentId][0]);
parentId = byParentsIdsList[parentId][0].id;
}

关于javascript - 使用 lodash 按父 ID 对平面列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com