判断两个对象是否相等

1判断是否为同一个对象

var objT2 = {name: "lili", age:2,rows:{id:1,country:'china'}}
var objT1 = {name:'lili',age:2,rows:{id:1,country:'china'}}
objT1==objT2 //false
var objT3 = objT1;
objT1===objT3 //true

2判断两个单独的对象属性和值是否相等

方法1:写个方法先判断两个对象类型和长度,都相同之后再判断json1中的固有属性是否在json2中也是固有属性且值相等,运用getOwnPropertyNames();参见 https://blog.csdn.net/github_38771368/article/details/76984673

方法2:很简单的方法,利用JSON.stringify(obj1)===JSON.stringify(obj2)就可以进行判断,但是该方法存在一定的问题,当对象属性的顺序不同时,将失效

类似的可以利用var objcopy = JSON.parse(JSON.stringify(obj2));可以实现对象的深拷贝;

var objT2 = {name: "lili", age:2,rows:{id:1,country:'china'}} 
var objT1 = {name:'lili',age:2,rows:{id:1,country:'china'}}
objT1==objT2 //false
var objT3 = objT1;
objT1===objT3 //true
function objEq(objT1,objT2){
  return JSON.stringify(objT1)==JSON.stringify(objT2)
}
console.log(objEq(objT1,objT2))
注意:只要key和value值一致就可以,不论单引号双引号,或者空格的影响
原文地址:https://www.cnblogs.com/xhliang/p/9174245.html