Javascript 有没有办法添加++;对于有时为空的变量?

Javascript 有没有办法添加++;对于有时为空的变量?,javascript,Javascript,我循环遍历一个数组,如下所示: _.each(user.groupings, function(grouping){ conversions[i][grouping]++; }) } _.each(user.groupings, function(grouping){ conversions[i][grouping] = (conversions[i][grouping] || 0) + 1; }) } 有时,转换[i][grouping]已设置,有时未设置。如果不是

我循环遍历一个数组,如下所示:

_.each(user.groupings, function(grouping){
    conversions[i][grouping]++;
  })
}
_.each(user.groupings, function(grouping){
    conversions[i][grouping] = (conversions[i][grouping] || 0) + 1;
  })
}
有时,
转换[i][grouping]
已设置,有时未设置。如果不是,则不会根据需要将其设置为1,而是NaN。我知道我能做到:

_.each(user.groupings, function(grouping){
   if(conversions[i][grouping]){
     conversions[i][grouping]++;
    }
    else{
       conversions[i][grouping] = 1
    }
  })
}

但是有速记吗?

你试过类似的方法吗

conversion[i][grouping] = (conversion[i][grouping] || 0) + 1;
此代码:

(conversion[i][grouping] || 0)
如果数组中的值为“truthy”,则会生成数组中的值;如果数组中的值为“false”,则会生成
0
(这是因为JavaScript的
|
运算符的方式)。falsey值是
未定义
0
NaN
,当然还有
false
;真正的价值观是其他一切。因此,如果
转换[i][grouping]
可能是
未定义的
空的
,并且您希望它在增量后成为
1
,我们使用
|
将其转换为
0
,然后将
1
添加到它并将结果分配回条目。

类似这样的内容:

_.each(user.groupings, function(grouping){
    conversions[i][grouping]++;
  })
}
_.each(user.groupings, function(grouping){
    conversions[i][grouping] = (conversions[i][grouping] || 0) + 1;
  })
}
这类似于C#null合并运算符:


我首选的语法是:

conversions[i][grouping] = conversions[i][grouping] ? conversions[i][grouping] + 1 : 1;
我认为这比| |选项更具可读性,但我想这是个人偏好。如果您只是在寻找尽可能少的代码,这将起作用:

conversions[i][grouping] = ++conversions[i][grouping] || 1;