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

How to write a function that gets the sum of an array (Javascript)

本文关键字:和的 函数 Javascript 数组 一个 何编写 获取      更新时间:2023-09-26

我有以下内容:

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

但我得到的只是

未捕获语法错误

我做错了什么?

对于循环需要;而不是,

应该是

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. 在循环外初始化totalValue
  2. 正确使用增量赋值运算符

应该是

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

你可以这样做。

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]));

所以你需要更改urs代码中的一些内容

  1. For循环的结构
  2. 使用Assignment运算符。它应该像x+yx+=y

少量改进

  1. 您只能使用一个变量来存储sum,并且可以返回它

存在打字错误

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]);
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]));

这一行出现"未捕获语法错误"

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]);