很难理解_Underscore库,我认为我正在学习的基础知识,但我认为这是给我带来问题的术语。
例如我有以下对象:
CA3 "BAA"
vol_2007 0.15
vol_2008 0.2
vol_2009 0.25
vol_2010 0.3
vol_2011 0.600
CA3 "LUF"
vol_2007 1.13
vol_2008 0.4
vol_2009 1.6
vol_2010 2.8
vol_2011 0.43
我已经达到了以下几点:
var fieldtogroup = 'CA3';
var groups = _.groupBy(tmp,function (name) { return name[fieldtogroup] });
var sums = _.map(groups, function (group) {
return _.reduce(group, function (a, b) { return b; }, 0);
});
我遇到的第一个问题是,如果我使用:
return _.reduce(group, function (a, b) { return a + b; }, 0);
我得到了一个垃圾对象,我可以看到 _Underscore 文档完美地解释了“a”是当前值而“b”是新值,但这只是行不通。有人可以解释这是为什么吗?在进行计算之前,我是否需要在函数中使用一个子句来确定这些值是否为数字?
此外,最终,我希望能够返回类似于以下内容的对象数组:
vol_2007: 0.15,1.13
vol_2008: 0.2,0.4
vol_2009: 0.25, 1.6
vol_2010: 0.3, 2.8
vol_2011: 0.600,0.43
我已经设法通过“有点”旋转对象、多次遍历数组并将值推入另一个数组来做到这一点,但我很肯定 _Underscore 能够为我做到这一点,但我不明白怎么做。
如果有人能启发我这些我真的很感激,我已经掌握了图书馆的基础知识,但这让我很难过!
- 编辑 *
解决了该_.pluck
命令的最后一个问题,这很棒,但在使用 Reduce 时仍然出现错误。
“更多”仅包含 vol_2009 -> vol_2011 的值