Javascript hasOwnProperty未返回正确的值
hasOwnProperty未返回正确的值 我有两组数据Javascript hasOwnProperty未返回正确的值,javascript,Javascript,hasOwnProperty未返回正确的值 我有两组数据 var data1 = { "Name": "Ana", "Class": 3, "index": 0, "Subject": [ { "Sub1": "Maths", "Sub2": "Science",
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]