【发布时间】:2020-09-04 17:54:45
【问题描述】:
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有“主题”
【问题讨论】:
-
data2是一个对象,它不是hasOwnProperty的合适参数。 -
hasOwnProperty不会对对象进行深度比较。它只是检查对象是否具有指定的key。所以data1.hasOwnProperty('Subject')会产生true -
hasOwnProperty不会深入研究对象并比较所有内容。它只是检查对象是否具有您正在寻找的 key。data1没有(也不能有)一个对象作为键,所以它返回false。 -
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - 记得参考预期行为的参考。
-
所以要访问“主题”,我需要使用 for loop @zzzzBov
标签: javascript