在一个section对象中,我有一个CategoryId
- 就像一个外键。
现在,我想将每个部分复制到匹配的类别对象中。
来源:
var sections = [{title:"FirstSection", CategoryId : 1},
{title:"SecondSection", CategoryId : 1},
{title:"ThirdSection", CategoryId : 2}];
var categories = [{title:"Cat1", Id : 1},
{title:"Cat2", Id : 2}];
结果如下:
categories = [{title:"Cat1",
Id : 1,
sections : [{title:"FirstSection", CategoryId : 1},
{title:"SecondSection", CategoryId : 1}]
},
{title:"Cat2",
Id : 1,
sections: [{title:"ThirdSection", CategoryId : 2}]
}];
CategoryId = 1
的所有部分现在都属于Id = 1的类别的部分数组。
也许我在搜索错误的关键字,但我无法找到解决方案。
答案 0 :(得分:1)
在这种情况下,我会使用下划线库(你可以手工完成所有这些)。
http://underscorejs.org/#findWhere
当您遍历类别数组时,您可以轻松地执行以下操作:
_.findWhere(sections, {categoryId: 1});
此外,您可以使用下划线:
var combined = _.groupBy(categories, function(cat){
cat.sections = _.findWhere(sections, {CategoryId: cat.Id});
return cat;
});
结合起来会有你想要的东西。
答案 1 :(得分:1)