gpt4 book ai didi

javascript - LoDash - 按数组属性分组而不将值作为一个键

转载 作者:行者123 更新时间:2023-11-29 14:44:44 24 4
gpt4 key购买 nike

我需要通过也是数组的属性对对象数组进行分组。

这是我的初始数组

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]
}

感谢您的帮助!

最佳答案

var res = _.reduce(videos, function(result, video){
return _.reduce(video.productInfo.categories, function(acc, category){
(acc[category] || (acc[category] = [])).push(video);
return acc;
}, result);
}, {});

关于javascript - LoDash - 按数组属性分组而不将值作为一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234317/

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