Javascript 检查对象是否->;密钥已在数组中

Javascript 检查对象是否->;密钥已在数组中,javascript,arrays,object,Javascript,Arrays,Object,我有一个数组看起来像这样 const arr = ["a", "b", "c", {d: [...]}, {e: [...]}, "f", "g"] 如何检查带有键的对象是否在数组中?如果只需要在一个级别上检查键,则可以使用some() const arr=[“a”、“b”、“c”、{d:[1]}、{e:[1]}、“f”、“g”] var检查=arr.some(功能(e){ 返回typeof e=='object'&&(e.hasOwnProperty('d')| | e.hasOwnPro

我有一个
数组
看起来像这样

const arr = ["a", "b", "c", {d: [...]}, {e: [...]}, "f", "g"]
如何检查带有
键的
对象
是否在数组中?如果只需要在一个级别上检查键,则可以使用
some()

const arr=[“a”、“b”、“c”、{d:[1]}、{e:[1]}、“f”、“g”]
var检查=arr.some(功能(e){
返回typeof e=='object'&&(e.hasOwnProperty('d')| | e.hasOwnProperty('e'))
})

console.log(检查)
您可以使用ES2015的
Object.keys()
获取对象自己的可枚举键:

const hasMatchingObject = arr.some((element) => {
    return (
        element instanceof Object &&
        (
            Object.keys(element).includes("d") ||
            Object.keys(element).includes("e")
        )
    );
});
(请注意,我使用了ES2016中的
includes
,但您也可以使用旧的
indexOf
方法)。

您可以使用:

阅读。然后,您只需在数组中循环并测试每个成员。
const arr = ["a", "b", "c", {d: [{id:1, value:'value d'}]}, 
                {e: [{id:1, value:'value e'}]}, "f", "g"];  

console.log(arr.find(i => i.d)); // will return the object/array
console.log(arr.find(i => i.x)); // undefined, it doesn't exist