js怎么判断两个对象是否相等?
文章描述
js怎么判断两个对象是否相等?
// 1 首先比较两个对象的长度,如果长度不相等使flag为false,为不相等;
// 2 如果长度相等那就遍历对象1(对象2也可以),利用hasOwnProperty() 【哈斯欧尼PROpt】方法查看对象1中是否包含对象2中的属性或者方法,如果不包含则使flag为false,为不想等。
// hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。
//3 接下来判断两对象的内存地址是否相同,不同则为true
function compreObj(obj1, obj2) {
var flag = true;
function compre(obj1, obj2) {
if (Object.keys(obj1).length != Object.keys(obj2).length) {
flag = false;
} else {
for (let x in obj1) {
if (obj2.hasOwnProperty(x)) {
if (obj1[x] !== obj2[x]) {
compre(obj1[x], obj2[x]);
}
} else {
flag = false;
}
}
}
if (flag === false) {
return false;
} else {
return true;
}
}
return compre(obj1, obj2)
}
console.log(compreObj(对象1, 对象2));
上一篇:javascript数组API
下一篇:object的方法