【问题标题】:Summing array on JavascriptJavascript上的求和数组
【发布时间】:2013-05-23 10:10:27
【问题描述】:

您好,我正在尝试使用以下代码对 Javascript 上的数组求和。

var data[]: 
var total=0;
data.push[x]; // x is numbers which are produced dynamically. 
for(var i=0, n=data.length; i < n; i++) 
 { 
  total=total+data[i];
 }
alert(total)

例如,如果 x 值分别为 5、11、16、7。它将总值显示为 511167 而不是值 5+11+16+7=39 你知道为什么会这样吗? 谢谢。

【问题讨论】:

  • 你确定你的x实际上是一个int列表吗?
  • 为什么?因为“+”运算符的交互方式类似于 concat...
  • 总计 = 总计 + +数据[i]

标签: javascript html arrays


【解决方案1】:

使用 parseInt() javascript 函数....

总计 = 总计 + parseInt(data[i]);

这看起来你提到的'x'动态具有字符串类型。只需检查“typeof x”即可。

【讨论】:

    【解决方案2】:

    只需在data[i] 之前鞭打unary + 即可将字符串值转换为数值:

    total = total + (+data[i]);
    

    更好的是,使用+= 而不是total=total+...

    total += +data[i];
    

    JSFiddle demo.

    【讨论】:

      【解决方案3】:

      尝试使用 parseInt:

      total=total+parseInt(data[i]);
      

      【讨论】:

        【解决方案4】:

        试试这个:

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

        【讨论】:

          【解决方案5】:

          使用parseInt()函数javascript

          total=parseInt(total)+parseInt(data[i]);
          

          【讨论】:

          • 你可以写total += parseInt(data[i]);,如果total被初始化为一个int,它仍然是一个int
          猜你喜欢
          • 2015-07-07
          • 2019-01-22
          • 2016-10-24
          • 1970-01-01
          • 1970-01-01
          • 2023-01-23
          • 1970-01-01
          • 2020-09-25
          • 2016-09-22
          相关资源
          最近更新 更多