Javascript变量不添加,只连接为字符串

时间:2014-08-13 20:29:05

标签: javascript string math

我有一些简单的代码,应该添加两个数字,它似乎继续添加它们,即如果我有一个初始化为0的变量,我添加100一次,然后我添加200,它似乎添加为跟随0 + 100 + 100 + 200,返回400不是300.如何才能正确添加?

function calcScores(amount) {
    amount = parseInt(amount,10);
    for(var key in teamSelection) {
        if (teamSelection[key]['Selected']) {
            score = parseInt(teamSelection[key]['Score'],10);
            var total = +score + +amount;
            teamSelection[key]['Score'] = total;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

var total = +score + +amount;

这条线让我感到困惑。如果您想将分数和金额添加到总数中,请使用

var total += score + amount;

答案 1 :(得分:0)

您应该尝试以较小的比例重现问题,而不考虑其他因素。大多数情况下,通过将有问题的片段减少到一些微不足道的事情,问题就变得很明显了。

您还应该在问题中包括实际输出与预期输出。

就像现在一样,我所能做的就是在你的代码中指出两个可疑部分:

  1. parseInt可以返回NaNundefined。你不会处理这些案件。

  2. total = +score + +amount有一些额外的添加符号,不应该有任何区别,但是嘿,这是javascript。也许是total += score + amount

  3. 如果您需要更多帮助,则必须将问题缩小到特定的范围:_此代码生成此输出而不是其他输出"。