谁能解释一下这里发生了什么? object[val] = (object[val] || 0) + 1



我正在练习js,我在每个循环中遇到这行代码

function test(arr1){
let fq1 = {}
for(val of arr1){
fq1[val] = (fq1[val] || 0) + 1
}
}
test([1,2,3,3]);

我已经提供了我遇到的代码,谁能解释一下

中发生了什么?
fq1[val] = (fq1[val] || 0) + 1

我试过了,我已经看到对象键正在存储数组中提供的值的数量。但是我不清楚我上面提到的那行代码。

(fq1[val] || 0)

这意味着如果它为真(如果转换为布尔值,它将是true),则计算左边的值,否则计算右边的值。

在这个特定的情况下,这是说&;评估为对象fq1中键val的值,但是如果它是undefined(尚未在对象中),则使用0作为默认值&;

最新更新