数组求和方法不起作用 // javascript



我正在尝试对下面的数组求和(即 4+15+10 等... = 总计(。我相信我使用了正确的代码,但它似乎不起作用。有人可以帮我看看吗?

function beginhere() {
var arr = [4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14];
var total =0
var i =0
for(i < arr.length; i++) {
total += arr[i][1];
}
document.getElementById("thismessage").innerHTML = i;
}

您只需要元素,而不需要另一个索引,因为您有一个具有单个值的数组,而不是数组数组。

total += arr[i];
//             ^^^

以及 for 语句的正确起始值

for (i = 0; i < arr.length; i++) {
//   ^^^^^

并且您需要分配total而不是循环变量i

document.getElementById("thismessage").innerHTML = total;
//                                                 ^^^^^

function beginhere() {
    var arr = [4, 15, 10, 7, 6, 18, 1, 18, 8, 45, 55, 16, 9, 19, 11, 13, 14],
        total = 0,
        i;
    for (i = 0; i < arr.length; i++) {
        total += arr[i];
    }
    document.getElementById("thismessage").innerHTML = total;
}
beginhere();
<div id="thismessage"></id>

  1. 因为循环语法是错误的,这是一个for(i=0; i<length; i++)
  2. 第二个问题是数组参数的加法。 total += arr[i];
  3. 最后一个 你不是打印总值。你只是打印增量 。但不使用 因为是外循环

function beginhere() {
var arr = [4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14];
var total =0
var i =0
for(i=0; i < arr.length; i++) {
total += arr[i];
}
console.log(total);
}
beginhere();

另一种方法Array#reduce Arrow function简单地像这样使用

var arr = [4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14];
 var res = arr.reduce((a,b) => a+b ,0)
 
 console.log(res)

一些更正:

  • 您在for循环的开头缺少一个分号;

  • arr[i]访问后,您不需要额外的[1];和

  • 您可能打算将内容设置为 total 而不是 i .

其他一些建议:

  • 当您不打算插入标签时,请使用textContent而不是innerHTML;以及
  • var i = 0放在for循环(这是常见的做法(。

function beginhere() {
  var arr = [4, 15, 10, 7, 6, 18, 1, 18, 8, 45, 55, 16, 9, 19, 11, 13, 14]
  var total = 0
  for (var i = 0; i < arr.length; i++) {
    total += arr[i]
  }
  document.getElementById("thismessage").textContent = total
}
beginhere()
<p id="thismessage"></p>

最新更新