1

我试图从数组中返回一个总和,但由于某种原因它没有显示。我尝试了各种方法,但由于某种原因它没有返回数组的总和。当我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">&#160;</td>
    </tr>
4

2 回答 2

0

return语句退出函数并阻止执行它下面的行,您尝试将结果分配给 DOM 元素。来自Mozilla 的文档

一个函数在调用 return 时立即停止。

请尝试以下操作:

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 元素。

于 2013-03-24T00:51:59.563 回答
0

看起来您是在更新 DOM 之前从函数返回的。

尝试将 return 语句移到 DOM 操作之后:

document.getElementById('sum').innerHTML = sum;
return sum;
于 2013-03-24T00:52:01.170 回答