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));

 

评论(共0条)