我是underscore.js
的新手假设我有这样的对象:
[
{ couponid: 500, locationid: 10 },
{ couponid: 600, locationid: 15 },
{ couponid: 500, locationid: 10 },
{ couponid: 500, locationid: 20 }
]
我得到了独特的优惠券(500,600)以及每种优惠券的计数,使用:
_.countBy(result, "couponid")
其中结果是阵列。
任何人都可以告诉,现在,对于每个唯一的优惠券,我该如何获得多少个唯一的位置ID(以及位置IDS)?IE在上述优惠券500中将有2个计数,而优惠券600将具有1。
如果我正确理解您,我认为这会做您想要的:
var result = _.chain(data)
.groupBy('couponid')
.mapObject( group => _.countBy(group, 'locationid'))
.value()
首先,我们按couponid
分组,然后将该对象映射到该组中的每个locationid
。
这将导致一个看起来像这样的对象:
{
500: {
10: 2,
20: 1
},
600: {
15: 1
}
}