如何按特定列对lodash中的字符串值求和?

时间:2019-04-02 06:28:35

标签: javascript jquery lodash angular7

您好,我正在使用lodash进行聚合,但是我一直停留在一个地方,我将我的值作为字符串而不是float来获取,因此将其连接起来而不是求和。

下面是尝试的方法。

var data = [{extendedPrice: "5151.059", month: "January"}, 
            {extendedPrice: "8921.0336", month: "March"},
            {extendedPrice: "2036.9865", month: "April"}];

var sumValue = _.sumBy(data,extendedPrice);

上面的结果

  

5151.0598921.03362036.9865

预期结果:

  

16109.0791

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

由于值是字符串,所以+表示串联,而不是加法。您可以为_.sumBy函数提供回调:

_.sumBy(data, item => Number(item.extendedPrice));

工作演示:

var data = [{extendedPrice: "5151.059", month: "January"}, 
            {extendedPrice: "8921.0336", month: "March"},
            {extendedPrice: "2036.9865", month: "April"}];

var sumValue = _.sumBy(data, item => Number(item.extendedPrice));
console.log(sumValue);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>