【发布时间】:2014-10-21 21:35:33
【问题描述】:
我有一个对象数组,我正在寻找对数据进行分组和汇总的最佳最有效方法。目前我有几百行代码和大量的“for each”语句,我知道有很多更简单的方法可以做到这一点,但我就是无法让它完全发挥作用。
这是我的数据的一个小样本。对于任何给定的数据集,我可能有数百种产品。每个产品都有五颗星,并且可以为星星指定三个值之一(已获得、未获得或进行中)。我的目标是查看每个值中有多少分配给每个星的摘要。
[{
Product: "A"
star1: "Not Earned"
star2: "In Progress"
star3: "Earned"
star4: "Not Earned"
star5: "In Progress"
},{
Product: "B"
star1: "In Progress"
star2: "Not Earned"
star3: "In Progress"
star4: "Earned"
star5: "Earned"
}]
最后我会看到类似这样的结果:我意识到我的对象和数组格式有点偏离,这也是我寻求帮助的另一个原因。我也在使用 JavaScript 和 lodash。
Results= [{
star1:{
In Progress: 50,
Not Earned: 32,
Earned: 1
},{
star2:{
In Progress: 10
Not Earned: 14,
Earned: 11
},{
star3:{
In Progress: 45,
Not Earned: 25,
Earned: 19
}]
我该怎么做?
【问题讨论】:
-
我不知道所有这些数字是从哪里来的......
-
那么还有更多的产品,这些都是总和?
-
"对于任何给定的数据集,我可能有数百个产品。"如果只有数百个,您可以在没有世界上最快的方法的情况下漂亮/懒惰地完成它,这听起来很好地使用了下划线。
-
感谢下划线的推荐。我发现了一个使用下划线解决的类似问题,所以我将关闭这个问题......stackoverflow.com/questions/14430321/…
-
是的,我想
groupBy和countBy应该这样做
标签: javascript arrays angularjs object lodash