检查对象数组是否包含某些键

kee*_*han 7 javascript arrays json object node.js

我需要确定某个键是否存在于对象数组中。

这是一个示例数组:

arrOfObj = [{
        "mainKey1": {
            "subKey1": {
                "innerKey1": {
                    "innerMostKey1": {
                        "key1": "value"
                    }
                }
            }
        }
    }, {
        "mainKey2": {
            "key2": "value"
        }
    }, {
        "mainKey3": {
            "subKey3": {
                "key3": "value"
            }
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我试图这样做,但我得到了错误的输出:

const objKeys = Object.keys(arrOfObj)
console.log('objKeys = ' + JSON.stringify(arrOfObj))
Run Code Online (Sandbox Code Playgroud)

输出是索引号:

objKeys = ["0", "1", "2"]
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样工作的函数:

var isKeyPresent = checkKeyPresenceInArray('mainKey3')
Run Code Online (Sandbox Code Playgroud)

请注意,我只需要检查对象中的最顶层 - 在上面的示例中,这些是主键(mainKey1等)并且它们的内容是动态的(其他一些在内部具有深度嵌套的对象,有些则不然。

帮助!

mic*_*ckl 10

您可以尝试使用array.some()

let checkKeyPresenceInArray = key => arrOfObj.some(obj => Object.keys(obj).includes(key));
Run Code Online (Sandbox Code Playgroud)

let checkKeyPresenceInArray = key => arrOfObj.some(obj => Object.keys(obj).includes(key));
Run Code Online (Sandbox Code Playgroud)