{
  "myJSONArrayObject": [
    {
      "12": {}
    },
    {
      "22": {}
    }
  ]
}


我有上面的JSON Array对象。如何检查myJSONArrayObject是否具有特定密钥?

这种方法不起作用:

let myIntegerKey = 12;

if (myJSONArrayObject.hasOwnProperty(myIntegerKey))
      continue;


当它包含一个键时,它似乎返回false;而当它不包含键时,它返回true。

最佳答案

myJSONArrayObject是一个数组。它没有12作为属性(除非数组中有12个以上的项目)

因此,检查数组中对象的some是否具有myIntegerKey作为属性

const exists = data.myJSONArrayObject.some(o => myIntegerKey in o)


或者myIntegerKey始终是自己的财产

const exists = data.myJSONArrayObject.some(o => o.hasOwnProperty(myIntegerKey))


这是一个片段:



const data={myJSONArrayObject:[{"12":{}},{"22":{}}]},
      myIntegerKey = 12,
      exists = data.myJSONArrayObject.some(o => myIntegerKey in o);

console.log(exists)

10-04 14:42