干掉JavaScript的片段

时间:2013-02-13 22:56:51

标签: javascript dry

可以将以下内容略微推迟吗?

if(totals[label]) {
    totals[label] += increment;
} else {
    totals[label] = increment;
}

基本上,我在totals[label] === undefined时有一个特例,因为undefined + increment === NaN只要typeof increment === 'number'

2 个答案:

答案 0 :(得分:3)

totals[label] = (totals[label] || 0) + increment;

答案 1 :(得分:1)

我觉得这很好,你没有重复太多。是的,你可以使用

totals[label] = (totals[label] || 0) + increment;

但imho并没有节省多少。我想

if (label in totals)
    totals[label] += increment;
else
    totals[label] = increment;

更容易阅读,因为它更能表达您想要做的事情。