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)