我做了一个小的plnkr here来展示我要实现的目标。我有一个很大的数据集,在这里我喜欢对单个类型求和以获得总计。

我可以考虑迭代并将结果添加到对象哈希中,但是想知道使用下划线解决它的更优雅的方法。我正在使用underscore.js,但从未尝试过map reduce或其他功能范例。请更新plnkr以了解操作方法。

http://plnkr.co/edit/B5HGxhwvWsfvOR97z7TL?p=preview

var data = [ {'type': "A", 'val':2},
  {'type': "B", 'val':3},
  {'type': "A", 'val':1},
  {'type': "C", 'val':5} ];


 _.each(data, function (elm, index) {
   console.log(elm);
 });

 /*
 Desired output

 out = [ {'type': "A", 'total':3},
  {'type': "B", 'total':3},
  {'type': "C", 'total':5} ];

 */

最佳答案

var data = [ { type: "A", val: 2 },
             { type: "B", val: 3 },
             { type: "A", val: 1 },
             { type: "C", val: 5 } ];

var groups = _(data).groupBy('type');

var out = _(groups).map(function(g, key) {
  return { type: key,
           val: _(g).reduce(function(m,x) { return m + x.val; }, 0) };
});

DEMO

关于javascript - Underscore.js:集合中的项目总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14430321/

10-11 05:44