Javascript对象增量项(如果不存在)

use*_*867 31 javascript

有没有标准的方法来做到这一点?我知道如何在Python,但在Javascript中最新最好的方式的关键首先检查,添加到字典中如果键已经存在,如果不符合,值1添加它,如果它存在,那么就增加当前计数.

像这样的伪代码:

var dict = {};
var new_item = "Bill"

If new_item not in dict:
dict[new_item] = 1

else:

dict[new_item] += 1
Run Code Online (Sandbox Code Playgroud)

sna*_*nak 111

这个怎么样?

dict[key] = (dict[key] || 0) + 1;
Run Code Online (Sandbox Code Playgroud)

  • 大!与`dict [key] = dict [key]吗?dict [key] +1:1` (2认同)

Sim*_*lGy 15

@ snak的方式非常干净,||操作员在可读性方面表现得很明显,所以这很好.

对于完整性和琐事,这种按位方式也是非常光滑的:

dict[key] = ~~dict[key] + 1;
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为在强制转换为Number后~~会将许多非数字事物转化0为.我知道这不是一个非常完整的解释,但这里有一些不同场景可以预期的输出:

~~(null)
0
~~(undefined)
0
~~(7)
7
~~({})
0
~~("15")
15
Run Code Online (Sandbox Code Playgroud)