使用对象文字来跟踪多个(未知)计数的干净方法是什么?

时间:2019-04-01 18:19:15

标签: javascript algorithm optimization object-literal

给出以下代码,有一个变量counts用于计算函数functionThatGivesSomeKnownOrUnknownStatus赋予每种状态的次数。

const counts = {};

for (let i = 0; i < 100; i++) {
    const status = functionThatGivesSomeKnownOrUnknownStatus();

    counts[status] = counts[status] ? counts[status] + 1 : 1;
}

我不喜欢的部分是此行counts[status] = counts[status] ? counts[status] + 1 : 1;,有没有办法使它更短,更简单/更少的冗余/更清洁? 这是一个节点脚本,因此欢迎使用ES6 / 7解决方案。

一种方法可能是使用已经设置为counts的键来初始化0文字,但是我不知道该函数可以提供的状态。


试图使标题尽可能简洁明了,如果可以改进,请随时进行编辑。

1 个答案:

答案 0 :(得分:0)

正如@Ry所说,我最终使用了此解决方案:

counts[status] = (counts[status] || 0) + 1;

在代码内部:

const counts = {};

for (let i = 0; i < 100; i++) {
    const status = functionThatGivesSomeKnownOrUnknownStatus();

    counts[status] = (counts[status] || 0) + 1;
}