gpt4 book ai didi

javascript - Underscore.js 带有子数组的新对象数组

转载 作者:行者123 更新时间:2023-12-03 12:16:43 26 4
gpt4 key购买 nike

我有一个以下结构的对象数组

var projects = [
{id:'1',name:'project1', parentid:"null"},
{id:'2',name:'project2', parentid:"null"},
{id:'3',name:'subproject1', parentid:"1"},
{id:'4',name:'subproject2', parentid:"1"},
{id:'5',name:'subproject3', parentid:"2"}
];

我想创建一个具有以下结构的新数组

var newProjects = [
{text:'project1', children:[
{id:'3',name:'subproject1', parentid:"1"},
{id:'4',name:'subproject2', parentid:"1"}
]},
{text:'project2', children:[
{id:'5',name:'subproject3', parentid:"2"}
]}
]

我已经能够使用一堆循环和 if 语句来做到这一点,但想通过使用 Underscore.js 来清理它,但无法这样做。有人可以指出我正确的方向吗?

最佳答案

根据给定的数据,您可能可以使用简单的 groupBymap

类似这样的事情:

var grouped = _.groupBy(projects, 'parentid');
var newProjects = _.map(grouped['null'], function (project, id) {
return {
text: project.name,
children: grouped[project.id]
};
});

如果您有更深的嵌套,您将需要制定一个更强大的解决方案,但这应该让您知道该怎么做。

关于javascript - Underscore.js 带有子数组的新对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656854/

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