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

数组求和方法不起作用//javascript,javascript,arrays,Javascript,Arrays,我试图对下面的数组求和(即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

我试图对下面的数组求和(即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;
}
函数beginhere(){
var arr=[4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14];
var总计=0
变量i=0
对于(i
您只需要元素,不需要另一个索引,因为您有一个具有单个值的数组,而不是数组数组

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

函数beginhere(){
var arr=[4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14],
总计=0,
我
对于(i=0;i
一些更正:

  • for
    循环的开头缺少分号

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

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

  • document.getElementById("thismessage").innerHTML = total;
    //                                                 ^^^^^
    
其他一些建议:

  • 当您不打算插入标记时,请使用
    textContent
    而不是
    innerHTML
    ;及
  • var i=0
    放在
    for
    循环的内部(这是常见的做法)
函数beginhere(){
var arr=[4,15,10,7,6,18,1,18,8,45,55,16,9,19,11,13,14]
var总计=0
对于(变量i=0;i


  • For循环语法错误。这是For(i=0;我也是
    document.getElementById(“thismessage”).innerHTML=total;
    tysm这起作用了:)快速问题:为什么我需要在For语句中指定i=0,而我在开始时已经将它指定给了0?@Karl:你不必,但是您必须包含
    for
    语句头的所有三个部分,以满足语法要求。因此,您可以对(;i
  • 执行
    (注意,早期的
    ,表示一个空的init子句)。但是按照习惯,除非有充分的理由不这样做,否则您应该在
    for
    标题中包含
    for
    标题的所有三个部分。回答得好。注意:您不需要
    减少
    上的
    ,0
    。如果您不使用它,第一个调用将传递前两个元素,分别为
    a
    b
    ,这在求和时非常有用。当您使用箭头函数时,最好使用简洁的形式:
    arr.reduce((a,b)=>a+b)
    (或
    arr.reduce((a,b)=>a+b,0);
    如果您想通过
    0
    )。@T.J.Crowder感谢您的建议。我不擅长写箭头函数。我记下了你的观点。。
    document.getElementById("thismessage").innerHTML = total;
    //                                                 ^^^^^