我正在尝试对下面的数组求和(即 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>
- 因为循环语法是错误的,这是一个
for(i=0; i<length; i++)
- 第二个问题是数组参数的加法。
total += arr[i];
- 最后一个 你不是打印总值。你只是打印增量 。但不使用 因为是外循环
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>