下划线,检查对象数组中是否存在键

Underscore, check if key exists in array of objects

我正在尝试根据我持有的对象检查我收到的新数据,我想知道的是我正在发送的对象的键是否与我当前对象中的任何键匹配有。

所以我抓住了一个像

这样的对象
myObj = [{"one": 1}, {"two": 2 },{"three" : 3}];

我收到了一个像

这样的对象
{"three" : 5 }

我只想根据对象数组 (myObj) 检查这个对象,看看里面是否有带键 "three" 的东西(我不关心值,只关心键匹配)所以我可以将它弹出到 if 语句中以像 -

if( array of objects (myObj) has key from single object ( "three" ) ) {}

我正在使用下划线。谢谢!

编辑:抱歉,这不是很清楚,我正在编辑它以澄清 -

我持有 myObj(对象数组),并被发送到单个对象 - 例如 "three",我只想拉出该单个对象键(Object.keys (updatedObject)[0]) 并检查对象数组中的任何对象是否具有该键。

所以 _has 似乎只是为了检查单个对象,而不是对象数组。

可以使用下划线方式'has'

这里是例子:

_.has({"three" : 5 }, "three");
=> true

来自underscore doc

Does the object contain the given key? Identical to object.hasOwnProperty(key), but uses a safe reference to the hasOwnProperty function, in case it's been overridden accidentally.

您正在寻找 _.some iterator combined with a callback that uses _.has:

if (_.some(myObj, function(o) { return _.has(o, "three"); })) {
    …
}