使用jQuery计算数组中的值的总和

20 浏览
0 Comments

使用jQuery计算数组中的值的总和

这个问题已经有了答案

如何计算数组中数字的总和

我有一个包含一些值的数组,我想要得到它们的总和。以下是示例:

var somearray = ["20","40","80","400"];

我想使用jQuery对这些值进行求和。在这个示例中,结果应该是540。

admin 更改状态以发布 2023年5月24日
0
0 Comments

你不需要jQuery。你可以使用一个for循环来实现这个功能:

var total = 0;
for (var i = 0; i < someArray.length; i++) {
    total += someArray[i] << 0;
}

相关内容:

0
0 Comments

为了处理浮点数:

  • (旧版) JavaScript:

    var arr = ["20.0","40.1","80.2","400.3"],
        n   = arr.length,
        sum = 0;
    while(n--)
       sum += parseFloat(arr[n]) || 0;
    

  • ECMA 5.1/6:

    var arr = ["20.0","40.1","80.2","400.3"],
        sum = 0;
    arr.forEach(function(num){sum+=parseFloat(num) || 0;});
    

  • ES6:

    var sum = ["20.0","40.1","80.2","400.3"].reduce((pv,cv)=>{
       return pv + (parseFloat(cv)||0);
    },0);
    


    reduce()在早期的ECMAScript版本中也可用,但箭头函数是ES6特有的。

    我将0作为第一个pv值传入,因此我不需要在它周围加上parseFloat - 它将始终保持上一个总和,这将始终是数字。因为当前值cv可能是非数字的(NaN),所以我们对其使用||0跳过数组中的该值。如果你想拆分一个句子并得到其中数字的总和,这是非常好的技巧。下面是一个更详细的例子:

    let num_of_fruits = `
       This is a sentence where 1.25 values are oranges 
       and 2.5 values are apples. How many fruits are 
       there?
    `.split(/\s/g).reduce((p,c)=>p+(parseFloat(c)||0), 0); 
    // num_of_fruits == 3.75
    


  • jQuery:

    var arr = ["20.0","40.1","80.2","400.3"],
        sum = 0;
    $.each(arr,function(){sum+=parseFloat(this) || 0;});
    


以上方法能帮你实现的功能:

  • 能够输入任何类型的值到数组中;数字或数字字符串(123"123"),浮点字符串或数字("123.4"123.4),甚至是文本(abc)
  • 只会添加有效的数字和/或数字字符串,忽略任何裸文本 (例如[1,'a','2']求和为3)
0