使用lodash检查对象中是否存在指定的键

28

我需要关于lodash的帮助,因为我不理解函数式编程,而lodash在对象/数组操作方面非常有用。

我需要在对象内搜索对象并返回如果键存在则为true。我已经设置了一个jsfiddle。感谢您的帮助。

    var dependsOn={
      "Cadastro": {
        "RHID": "RHID"
      },
      "Agregados":{
        "CD_DOC":"CD_DOC"
      }
      "Documentos":{
        "RHID":"CD_DOC"
      }
    }
    var field='RHID'

alert(_.contains(_.keys(dependsOn), field))

https://jsfiddle.net/88gwp87k/

3个回答

51

试试这个。它很简单。

_.has(dependsOn, field)

如果dependsOn中存在RHID键,则返回true。在上面的情况下,它返回false。


12

尝试一下

var dependsOn={
  "Cadastro": {
    "RHID": "RHID"
  },
  "Agregados":{
    "CD_DOC":"CD_DOC"
  },
  "Documentos":{
    "RHID":"CD_DOC"
  }
}
var field='RHID'

alert(_.some(dependsOn, function(o) { return _.has(o, field); }));

您的代码已更新:https://jsfiddle.net/88gwp87k/1/


有些问题。 Narendra CM,你能帮我看一下这个吗?https://jsfiddle.net/88gwp87k/ - Leonel Matias Domingos
什么问题??LeonelMatiasDomingos - Narendra CM
始终返回false,似乎必须返回true https://jsfiddle.net/88gwp87k/2/ - Leonel Matias Domingos
你有没有检查我之前的JSFiddle https://jsfiddle.net/88gwp87k/1/。它返回true。 - Narendra CM
你可以使用 _.where(test, {db: "NOME"}) 来获取所有符合条件的对象。在这个例子中,条件是 db = NOME。这是更新后的示例 https://jsfiddle.net/4w2z418c/3/。 - Narendra CM
显示剩余2条评论

1
_.chain(dependsOn).findKey(field).isString().value();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接