我正在练习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
作为默认值&;