如何编写一个获取数组之和的函数(Javascript)

时间:2015-12-14 06:52:03

标签: javascript arrays

我有以下内容:

var numSum = function(set) {
  for(i = 0, i < set.length, i++) {
      var arrayValue = set[i];
      var totalValue = arrayValue + 
  }
}
numSum([1, 2, 3, 4]);

但我得到的只是

  

未捕获的语法错误

。我做错了什么?

6 个答案:

答案 0 :(得分:4)

For循环需要;而非,

应该是

for(i = 0; i < set.length; i++)

x=x+y的简码为x+=y

但是你的格式错误了。

应该是

totalValue += arrayValue 

如果你在循环中声明变量,那么每次循环都会创建它。

在循环之外声明它。

喜欢这个

var totalValue=0;
for(i = 0; i < set.length; i++) {
      var arrayValue = set[i];
      totalValue+= arrayValue ;
}

您不需要声明额外的变量来保留。

试试这个

var numSum = function(set) {
  var totalValue=0;
  for(i = 0; i < set.length; i++) {
       totalValue += set[i]; 
  }
  return totalValue;
}
numSum([1, 2, 3, 4]);

JSFIDDLE

您可以使用 Array.prototype.reduce()

试试这个

var sum = [1, 2, 3, 4].reduce(function(prev, curr) { return prev + curr; });

JSFIDDLE

答案 1 :(得分:1)

需要进行以下更改:

  1. 在循环外初始化totalValue
  2. 正确使用增量赋值运算符
  3. 应该是

    var numSum = function(set) {
      var totalValue = 0;
      for(i = 0, i < set.length, i++) {
          totalValue += set[i];
      }
    }
    numSum([1, 2, 3, 4]);
    

答案 2 :(得分:1)

你可以这样做。

var numSum = function(set) {
    var arrayValue = 0;
    for (i = 0; i < set.length; i++) {
        arrayValue += set[i];

    }
    return (arrayValue);
};
console.log(numSum([1, 2, 3, 4]));

所以你需要在代码中改变一些东西

  1. For Loop
  2. 的结构
  3. 使用赋值运算符。它应该像x+yx+=y
  4. 很少改进

    1. 您只能使用一个变量来存储和,并且可以返回该值。

答案 3 :(得分:0)

有错字错误

var numSum = function(set) {
  for(i = 0; i < set.length; i++) {  // replace ',' to ';'
      var arrayValue = set[i];
      var totalValue += arrayValue; //  += operator is short of totalValue = totalValue  + arrayValue
  }
}
numSum([1, 2, 3, 4]);

答案 4 :(得分:-1)

此行有“未捕获的语法错误”

var totalValue = arrayValue + 

这应该是

totalValue += arrayValue;

你的numSum函数就像

function numSum (set) {
  var totalValue = 0;
  for(i = 0, i < set.length, i++) {
    totalValue += set[i];
  }
  return totalValue;
}
numSum([1, 2, 3, 4]);

答案 5 :(得分:-1)

Try this:
var numSum = function(set) {
                var arrayValue = 0;
                for(i = 0 ; i < set.length ; i++) {
                     arrayValue += set[i];                    
                }
                return arrayValue;
            }
            alert(numSum([1, 2, 3, 4]));