【问题标题】:Can anyone explain what is happening here object[val] = (object[val] || 0) + 1谁能解释这里发生了什么 object[val] = (object[val] || 0) + 1
【发布时间】:2022-11-18 15:53:58
【问题描述】:

我正在练习 js,我在 for each 循环中遇到了这行代码

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

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

【问题讨论】:

    标签: javascript function object


    【解决方案1】:
    (fq1[val] || 0)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多