数组求和方法无效// javascript

时间:2017-04-08 07:59:27

标签: 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").innerHTML = i;
}

3 个答案:

答案 0 :(得分:3)

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

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

for statement

的正确起始值
for (i = 0; i < arr.length; i++) {
//   ^^^^^

您需要指定total而不是循环变量i

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

&#13;
&#13;
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();
&#13;
<div id="thismessage"></id>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

  1. for循环语法错误。{a for(i=0; i<length; i++)
  2. 第二个问题是添加了数组参数。 total += arr[i];
  3. 最后一个你不打印总价值。你只是打印增量。但是不使用因为是外循环
  4. 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)

答案 2 :(得分:1)

一些更正:

  • 您在if (ob is IMasterAutoSuggestOutlet) { var transferObject = new MasterAutoSuggestModel(){ //Set Properties } // var ToBeTransfered = collection.OfType<MasterAutoSuggestModel>(); //Simply returns the collection with a count 0 var serializedData = JsonConvert.SerializeObject(transferObject); ScenarioFrame.Navigate(typeof(MasterSearchResultPage), serializedData); } 循环开始时缺少分号;

  • for访问后,您不需要额外的[1];以及

  • 您可能需要将内容设置为arr[i]而不是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()