总和未在功能中显示

时间:2013-03-24 00:48:16

标签: javascript arrays sum

我正在尝试从数组返回一个总和,由于某种原因它没有显示。我尝试了各种各样的东西,但由于某种原因,它没有返回数组的总和。当我从控制台调用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>

2 个答案:

答案 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;