我需要按一个属性对一个对象数组进行分组,这个属性本身也是一个数组。
这是我的初始数组:
var videos = [
{
name: 'Video 1',
productInfo:{
categories: ['cat1', 'cat2']}
},
{
name: 'Video 2',
productInfo:{
categories: ['cat2']}
},
{
name: 'Video 3',
productInfo:{
categories: ['cat1', 'cat3']}
}
];
当我使用这个时
_.groupBy videos, 'productInfo.categories'
我的回复是
{
'cat1, cat2': Array[1],
'cat1, cat3': Array[1],
'cat2': Array[1]
}
我已经尝试了另一个人提供的答案,他也遇到了同样的问题,但结果不同。
尝试他的解决方案。
_.groupBy _.flatten _.pluck videos, 'productInfo.categories'
我明白了
{
'cat1': ['cat1', 'cat1'],
'cat2': ['cat2', 'cat2'],
'cat3': ['cat3']
}
我需要你作为回应
{
'cat1': [videoObject, videoObject],
'cat2': [videoObject, videoObject],
'cat3': [videoObject]
}
感谢您的帮助!
transform
应该像这样:var result = _.transform(videos, function (collection, video) { ... }, { });
。 - Shanoor