在 for loop JavaScript 中添加数字

adding numbers in for loop javascript

本文关键字:添加 数字 JavaScript for loop      更新时间:2024-03-09

我需要用javascript对for循环中的所有数字求和

var nums = ['100','300','400','60','40'];
for(var i=1; i < nums.length; i++){
        var num = nums[i] + nums[i];
        alert(num);
}​

有人可以帮助 http://jsfiddle.net/GYpd2/1/

我正在寻找的结果是 900

var nums = ['100','300','400','60','40'];
var sum = 0;
for(var i=0; i < nums.length; i++){
    sum += parseInt(nums[i]);
}
alert(sum);

测试:http://jsfiddle.net/GYpd2/6/(感谢用户1503606(

如果nums只包含数字,则不需要parseInt()

ES5 Array.prototype.reduce方法的主要示例。喜欢:

var nums  = ['100','300','400','60','40'];
var total = nums.reduce(function(a,b) {
    return (+a)+(+b);
});

演示:http://jsfiddle.net/FwfmE/

var nums = ['100','300','400','60','40'], 
    num = 0;
for (var i = 0; i < nums.length; i++) {
    num += +nums[i];
}
alert(num);
​

这样做

var nums = ['100','300','400','60','40'];
var total = 0;    
for(var i=0; i < nums.length; i++){
    total = total + Number(nums[i]);
}
alert(total);
  1. 循环从 0 而不是 1 开始。

  2. total变量需要在循环之前声明,否则它不会保留之前的添加。

  3. 使用 Number(( 将字符串转换为数字。

  4. 添加字符串意味着连接'100' + '200' 将给出'100200' .

var num, nums = [100,300,400,60,40];
for ( var i=1; i < nums.length; i++ ) {
    num += nums[i];
}​
alert(num);

如果你有一个reduce函数,你可以这样做:

var nums = ['100','300','400','60','40'],
    sum = nums.reduce(function(accum, val) {return accum + Number(val);}, 0);
alert(sum);
var nums = ['100','300','400','60','40'];
var num = 0; 
for(var i=0; i < nums.length; i++){
    num = parseInt(num) + parseInt(nums[i]);
}

我就是这样做的。它与其他代码非常相似,但编写方式不同。您确实需要在 for 循环中以 0 开头初始 i 值。

这里是 JSFiddle

代码是:

var num=0, nums = ['100','300','400','60','40'];
for(var i=0; i < nums.length; i++){            
        num += parseInt(nums[i]);  
}
  alert(num);

Javascript 将你的数字视为字符串,并将它们连接在一起,而不是像你期望的那样将它们相加。

在添加之前,请使用parseInt将它们转换为整数:

var nums = ['100','300','400','60', 40];
var num = 0;
for(var i=1; i < nums.length; i++){
       num += parseInt(nums[i], 10);
       alert(num);
}​

第二个参数告诉parseInt使用基数 10。

var i, sum = 0, nums = ['100','300','400','60','40'];
for (i = 0; i < nums.length; i++) {
    sum += +nums[i];
}
alet(sum);

不应在循环中使用 var 语句。此外,其他答案中使用的parseInt函数将始终将数字转换为整数,因此它不适用于浮点数。在数字前面加上 + 会将它们转换为数字。

如果为浏览器进行开发,则使用 reduce 函数可能会导致旧版浏览器出现问题 - 除非您找到它的填充码。

下面是

一个使用 Number 原型扩展的示例,类似于 LINQ 的 sum 方法:

Array.prototype.sum = function () {
  var result = 0;
  this.forEach(function (o) { result += Number(o); });
  return result;
};
var sum = ['100','300','400','60','40'].sum();

你可以做这样的事情。

var nums = ['100','300','400','60','40'];
nums.reduceRight(function(a,b){return Number(a)+Number(b);})
var nums = ['100','300','400','60','40'];
let sum =0;
    for(let numbers of nums){
 sum+=parseInt(numbers);
     }
alert(sum);

你可以试试这个:

var arr = ['100','300','400','60','40'];
var total = 0; 
for(var i in arr){
  total += parseInt(arr[i]);
}
console.log(total);

输出将是:900

或者,如果值为 Float,请尝试以下操作:

var arr = [100.00,300.50,400.75,60.00,40.00];
    var total = 0; 
    for(var i in arr){
      total += parseFloat(arr[i]);
    }
    
    console.log(total.toFixed(2));

输出将为:901.25