我需要确定某个键是否存在于对象数组中。
下面是一个示例数组:
arrOfObj = [{
"mainKey1": {
"subKey1": {
"innerKey1": {
"innerMostKey1": {
"key1": "value"
}
}
}
}
}, {
"mainKey2": {
"key2": "value"
}
}, {
"mainKey3": {
"subKey3": {
"key3": "value"
}
}
}
]
我尝试这样做,但得到错误的输出:
const objKeys = Object.keys(arrOfObj)
console.log('objKeys = ' + JSON.stringify(arrOfObj))
输出为索引号:
objKeys = ["0", "1", "2"]
我想有一个这样的函数:
var isKeyPresent = checkKeyPresenceInArray('mainKey3')
请注意,我只需要检查对象中的最顶层--在上面的例子中,这些是主键(mainKey1
等),它们的内容是动态的(有些对象内部嵌套很深,有些则不是)。
救命啊!
6条答案
按热度按时间eufgjt7s1#
您可以尝试使用
array.some()
:ssgvzors2#
你可以遍历数组,检查是否有对象有你要找的键,如果有就返回true。如果没有找到键,
for
循环就会结束,返回false。mnemlml83#
这将工作,它返回布尔值:
mklgxw1f4#
您可以将
some
与hasOwnProperty
搭配使用,如下所示:j7dteeu85#
您必须使用**
hasOwnProperty
**方法来检查该数组中的对象中是否存在该键-7vhp5slm6#
为此,可以应用
JSON.stringify()
: