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值一致就可以,不论单引号双引号,或者空格的影响