我正在尝试从数组返回一个总和,由于某种原因它没有显示。我尝试了各种各样的东西,但由于某种原因,它没有返回数组的总和。当我从控制台调用tableSum(sum)
时,它会返回它,但它不会发生在JavaScript中。
这是我的代码:
var tableSum = function () {
'use strict';
var sum = 0,
i;
for (i = 0; i < numberArray.length; i += 1) {
sum += numberArray[i];
}
return sum;
document.getElementById('sum').innerHTML = sum;
};
HTML:
<table border="1">
<tr>
<td style = "text-align:right;">Sum:</td>
<td style="width:100px" id = "sum"> </td>
</tr>
答案 0 :(得分:0)
return
语句退出函数,并阻止在您尝试将结果分配给DOM元素的位置执行该行。来自Mozilla's documentation:
函数会在调用返回的位置立即停止。
请尝试以下方法:
var tableSum = function () {
'use strict';
var sum = 0, i;
for (i = 0; i < numberArray.length; i += 1) {
sum += numberArray[i];
}
return sum;
};
document.getElementById('sum').innerHTML = tableSum();
将渲染与函数分离使其更加灵活和可重用,并允许您使用相同的函数来更新其他DOM元素。
答案 1 :(得分:0)
在更新DOM之前,您似乎正在从函数返回。
尝试在DOM操作之后将return语句移动:
document.getElementById('sum').innerHTML = sum;
return sum;