Javascript hasOwnProperty未返回正确的值

Javascript hasOwnProperty未返回正确的值,javascript,Javascript,hasOwnProperty未返回正确的值 我有两组数据 var data1 = { "Name": "Ana", "Class": 3, "index": 0, "Subject": [ { "Sub1": "Maths", "Sub2": "Science",

hasOwnProperty未返回正确的值

我有两组数据

var data1 = {
  "Name": "Ana",
  "Class": 3,
  "index": 0,
  "Subject": [
    {
      "Sub1": "Maths",
      "Sub2": "Science",
      "index": 00,
      "Speciality": [
        {
          "Spcl": "Music",
          "Spcl2": "Sports",
          "Spcl3": "Singing",
          "index": "000"
        }
      ]
    }]
}

var data2 = {

"Subject": [
    {
      "Sub1": "Maths",
      "Sub2": "Science",
      "index": 00,
      "Speciality": [
        {
          "Spcl": "Music",
          "Spcl2": "Sports",
          "Spcl3": "Singing",
          "index": "000"
        }
      ]
    }

}
当我给出
data1.hasOwnProperty(data2)
时,它返回false。此代码中有什么错误。数据1有“主题”:

hasOwnProperty
返回一个布尔值,指示调用它的对象是否具有具有参数名称的属性


data2
是一个对象,而不是属性名


你要做的是比较两个对象的值。搜索“比较两个对象”,你会找到几个关于如何完成该任务的好答案。

data2
是一个对象,这不是
hasOwnProperty
的合适参数
hasOwnProperty
不会对对象进行深入比较。它只是检查对象是否有指定的
。因此
data1.hasOwnProperty('Subject')
将产生
true
hasOwnProperty
不会深入对象并比较所有内容。它只是检查对象是否具有您要查找的密钥
data1
没有(也不能有)对象作为键,因此它返回
false
-请记住参考预期行为的引用。因此,要访问“主题”,我需要使用for loop@zzzzBovya I undertod,那么在本例中,从数据2中访问“主题”的javascript方式是什么。假设我在data2中只有一个对象,并且我不想在我的代码中使用“subject”
object.values(data2)[0]