我正在尝试检查我收到的针对我正在抓住的对象的新数据,我想要找出的是,如果他们发送的对象的键与我当前拥有的对象中的任何键匹配。
所以我抓住像
这样的对象myObj = [{"one": 1}, {"two": 2 },{"three" : 3}];
我收到一个像
这样的对象{"three" : 5 }
我想只是针对对象数组(myObj)检查这个对象,看看里面是否有“三”键(我不关心值,只是键匹配)所以我可以将它弹出一个if语句来分隔像 -
if( array of objects (myObj) has key from single object ( "three" ) ) {}
我正在使用下划线。谢谢!
编辑:抱歉这不清楚,我正在编辑它以澄清 -
我持有myObj(对象数组),并被发送一个对象 - 例如“三”,我只想拉出那个单个对象键(Object.keys(updatedObject)[0]并检查对象数组中的任何对象是否具有该密钥。
所以_has似乎只是为了检查一个对象,而不是一个对象数组。
答案 0 :(得分:10)
您正在寻找_.some
iterator与使用_.has
的回调相结合:
if (_.some(myObj, function(o) { return _.has(o, "three"); })) {
…
}
答案 1 :(得分:8)
您可以使用下划线方法'has'
这里的例子是:
_.has({"three" : 5 }, "three");
=> true
对象是否包含给定的密钥?相同 object.hasOwnProperty(key),但使用安全引用 hasOwnProperty函数,以防它被意外覆盖。