我需要使用 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
我需要使用 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/(感谢user1503606)
如果nums
仅包含数字,则不需要parseInt()
.
ES5Array.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);
循环从 0 而不是 1 开始。
total
变量需要在循环之前声明,否则它不会保留之前的添加。
使用 Number() 将字符串转换为数字。
添加字符串意味着连接'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);
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。
这是JSFiddle
代码是:
var num=0, nums = ['100','300','400','60','40'];
for(var i=0; i < nums.length; i++){
num += parseInt(nums[i]);
}
alert(num);
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
功能可能会导致旧浏览器出现问题 - 除非您找到它的 polyfill。
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 值。
这是一个使用 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
或者如果 value 是 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