给定以下代码,有一个变量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解决方案。
一种方法可能是使用已设置为 0
的键初始化counts
文字,但我不知道函数可以提供的状态。
尽量使标题尽可能清晰简洁,如果可以改进,请随意编辑。
正如@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;
}