【问题标题】:lodash find object inside objectlodash 在对象中查找对象
【发布时间】:2016-01-27 12:27:35
【问题描述】:

如果对象存在,我试图返回 true

var primary={
  "RHID": {
    "type": "numeric"
  },
  "CD_DOC_ID": {
    "type": "numeric"
  },
  "SEQ": {
    "type": "numeric"
  }
}

console.log(_.contains(primary, 'RHID'))

但是客场是假的。谢谢

【问题讨论】:

    标签: javascript object lodash


    【解决方案1】:

    您可以使用_.has method

    console.log(_.has(primary, 'RHID'))
    

    【讨论】:

      【解决方案2】:

      RHID 是对象primary 中的一个键,所以你应该在primary 的键中查找。

      loDash 函数_.keys 返回一个包含所有对象键的数组,你可以这样使用它:

      console.log(_.contains(_.keys(primary), 'RHID')) // true
      

      【讨论】:

      • 不客气。不过,@suvroc 提供了一个更直接的解决方案。
      【解决方案3】:

      使用has()hasIn()lodash 解决方案:

      var primary=
      {
          "RHID": {
            "type": "numeric"
          },
          "CD_DOC_ID": {
            "type": "numeric"
          },
          "SEQ": {
            "type": "numeric"
          }
      }
      console.log(_.has(primary, 'RHID'));
      

      _.has() 检查自己的属性,_.hasIn() 验证自己的和继承的。

      不过最好用inoperator

      var primary=
      {
          "RHID": {
            "type": "numeric"
          },
          "CD_DOC_ID": {
            "type": "numeric"
          },
          "SEQ": {
            "type": "numeric"
          }
      }
      
      console.log('RHID' in primary);
      

      【讨论】:

      • In 是一个非常好的解决方案:从未使用过,谢谢!
      • @chriskelly in 实际上来自 ES3
      • @LeonelMatiasDomingos 使用 lodash 会更容易_.get(primary, 'RHID.type', null) === "numeric"
      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      相关资源
      最近更新 更多