Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 迭代一个数组并用JS求和所有值_Javascript_Arrays_Sum_Iteration - Fatal编程技术网

Javascript 迭代一个数组并用JS求和所有值

Javascript 迭代一个数组并用JS求和所有值,javascript,arrays,sum,iteration,Javascript,Arrays,Sum,Iteration,正如标题所说,我试图总结一下使用for循环来迭代数组。 你能给我指点一下我哪里出了问题吗。我将返回值NaN var total = 0; function sum(input) { for (idx=0; idx<=input; idx++) { total += input[idx]; } return total; } var总计=0; 函数和(输入){ 对于(idx=0;idx您需要将total声明为函数,还需要声明idx。另一件事是,您需

正如标题所说,我试图总结一下使用for循环来迭代数组。 你能给我指点一下我哪里出了问题吗。我将返回值NaN

var total = 0;

function sum(input) {
    for (idx=0; idx<=input; idx++) {
        total += input[idx];
    }
    return total;
}
var总计=0;
函数和(输入){

对于(idx=0;idx您需要将total声明为函数,还需要声明idx。另一件事是,您需要将total声明为函数,还需要声明idx。另一件事是,您不需要将total声明为变量
idxvariabletotal

function sum(input) {
    var total = 0;
    for (idx=0; idx <= input.length; idx++) {
        total += input[idx];
    }
    return total;
}
函数和(输入){
var合计=0;

for(idx=0;idx变量总计未声明

function sum(input) {
    var total = 0;
    for (idx=0; idx <= input.length; idx++) {
        total += input[idx];
    }
    return total;
}
函数和(输入){
var合计=0;

对于(idx=0;idx在现代浏览器中,实际上不需要循环来完成此操作,您可以使用以下函数:

var sum = input.reduce(function(a,b){
    return a+b;
}, 0);

在现代浏览器中,实际上不需要循环来完成此操作,您可以使用以下功能:

var sum = input.reduce(function(a,b){
    return a+b;
}, 0);

导致
NaN
的问题是因为数组一直遍历数组,而不是从索引
0
input.length-1
试试这个:

var总计=0;
函数和(输入){
for(var idx=0;idx
导致
NaN
的问题是由于数组一直遍历数组,而不是从索引
0
输入。长度-1
试试这个:

var总计=0;
函数和(输入){
for(var idx=0;idx
在函数中声明变量total,并使用input.length-1定义循环的范围:

function sum(input) {
    var total = 0;
    for (idx=0; idx <= input.length-1; idx++) {
        total += input[idx];
    }
    return total;
}
函数和(输入){
var合计=0;

对于(idx=0;idx在函数内声明变量total,并使用input.length-1定义循环的范围:

function sum(input) {
    var total = 0;
    for (idx=0; idx <= input.length-1; idx++) {
        total += input[idx];
    }
    return total;
}
函数和(输入){
var合计=0;

对于(idx=0;idx您将
input
用作整数和值数组。您可能是指
for(var idx=0;idx
您将
input
用作整数和值数组。您可能是指
for(var idx=0;idx

变量总计未申报您可能希望在
for
循环中使用
idx
。谢谢,是的,更改变量总计未申报您可能希望在
for
循环中使用
idx
。谢谢,是的,更改它似乎向我声明了。只有它是全局的,因此结果将是全局的一直在增长。它似乎向我宣布。只有它是全球性的,所以结果总是会增长。啊,非常感谢。这就是我出错的地方。这已经解决了,非常感谢much@dannywhite:一定要把其他答案也考虑进去:你的
总数
是全球范围的。啊,非常感谢..这就是我错的地方。。现在已经整理好了,非常感谢much@dannywhite:一定要把其他答案也考虑进去:你的
total
是全局范围的。不错的功能风格-虽然不是很新手友好。不错的功能风格-虽然不是很新手友好。