• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

凉梁凉糕

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

判断两个对象是否相等

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

posted on 2018-06-12 17:33  凉梁凉糕  阅读(3117)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3