我是Underscore.js的新手
假设我有这个对象数组:
[
{ couponid: 500, locationid: 10 },
{ couponid: 600, locationid: 15 },
{ couponid: 500, locationid: 10 },
{ couponid: 500, locationid: 20 }
]
我获得了独特的优惠券(500,600)以及每张优惠券的数量,使用:
_.countBy(result, "couponid")
其中result是数组。
任何人都可以告诉我,现在我怎么能得到每个独特的优惠券,有多少独特的位置ID(以及locationids)?即,在上面的couponid 500中,计数为2,而couponid 600将计为1。
答案 0 :(得分:0)
如果我理解正确,我认为这会做你想做的事情:
var result = _.chain(data)
.groupBy('couponid')
.mapObject( group => _.countBy(group, 'locationid'))
.value()
首先,我们按couponid
进行分组,然后映射该对象以计算该组中的每个locationid
。
这将导致一个如下所示的对象:
{
500: {
10: 2,
20: 1
},
600: {
15: 1
}
}