如何在 JavaScript 中构建一个计算数组中出现次数的对象?

e1v*_*v1s 2 javascript arrays dictionary

我想计算数组中某个数字出现的频率。例如,在 Python 中,我可以用来Collections.Counter创建一个字典,记录某个项目在列表中出现的频率。

据我所知,JavaScript 是这样的:

var array = [1,4,4,5,5,7];
var obj = {};
for (var i=0; i < array.length; i++) {
 /* obj[array[i]] = +=1 */ <= pseudo code
}
Run Code Online (Sandbox Code Playgroud)

如何创建这个频率计数器对象?

cha*_*tfl 5

关闭但不能增加 undefined 因此如果不存在则需要设置初始值

var array = [1,4,4,5,5,7];
var obj = {};
for (var i=0; i < array.length; i++) {
  obj[array[i]] = (obj[array[i]] || 0) +1 ;
}
Run Code Online (Sandbox Code Playgroud)