给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)

我认为每个美元可能有用,但我不确定如何实现它。


当前回答

带ES6休息参数

让数组=[1,2,3,4]函数和(…数字){设总数=0;for(常量数){总数+=数量;}回报总额;}console.log(sum(…array));

其他回答

这可以通过循环所有项,并在每次迭代中将它们添加到一个和变量中来实现。

var array = [1, 2, 3];

for (var i = 0, sum = 0; i < array.length; sum += array[i++]);

JavaScript不知道块的作用域,所以可以访问sum:

console.log(sum); // => 6

同上,但注释和准备为简单函数:

function sumArray(array) {
  for (
    var
      index = 0,              // The iterator
      length = array.length,  // Cache the array length
      sum = 0;                // The total amount
      index < length;         // The "for"-loop condition
      sum += array[index++]   // Add number on each iteration
  );
  return sum;
}

如果您恰好使用Lodash,则可以使用sum函数

array = [1, 2, 3, 4];
sum = _.sum(array); // sum == 10

当数组由字符串组成时,必须更改代码。如果数组是数据库请求的结果,则可能是这种情况。此代码有效:

alert(
["1", "2", "3", "4"].reduce((a, b) => Number(a) + Number(b), 0)
);

这里,[“1”,“2”,“3”,“4”]是字符串数组,函数Number()将字符串转换为数字。

一个“重复”问题问如何对二维数组执行此操作,因此这是一个简单的适应问题。(区别仅在于六个字符[2],0,它在每个子数组中找到第三项,并传递初始值0):

常量二维数组=[[10, 10, 1],[10, 10, 2],[10, 10, 3],];constsum=twoDimensionalArray.reduce((partial_sum,a)=>partial_sum+a[2],0);console.log(总和);//6.

你可以试试这个:

var arr = [100,114,250,1200];
var total = 0; 
for(var i in arr){
  total += parseInt(arr[i]);
}

console.log(total);

输出将为:1664

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

var arr = [100.00,114.50,250.75,1200.00];
    var total = 0; 
    for(var i in arr){
      total += parseFloat(arr[i]);
    }
    
    console.log(total.toFixed(2));

输出将为:1665.25