js判断两个对象的值是否相等

js判断两个对象的值是否相等,第1张

判断对象相等的步骤:
1先判断俩者是不是对象
2是对象后俩者长度是否一致
3判断俩个对象的所有key值是否相等相同
4判断俩个对象的相应的key对应的值是否相同
来一个递归判断里面的对象循环1-4步骤代码如下:
diff(obj1,obj2){
consolelog('obj12'+obj1,obj2)
var o1 = obj1 instanceof Object;
var o2 = obj2 instanceof Object;
if(!o1 || !o2){/ 判断不是对象 /
return obj1 === obj2;
}
if(Objectkeys(obj1)length !== Objectkeys(obj2)length){
return false;
}
for(var attr in obj1){
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if(t1 && t2){
return diff(obj1[attr],obj2[attr]);
}else if(obj1[attr] !== obj2[attr]){
return false;
}
}
return true;
}

像这种问题,可以直接使用Set,省去自己判断在集合中是不是有重复的对象,至于怎么判断两个对象是不是相等, 完全取决与业务,举个例子:一个用户一个ID,如果两个用户的ID一样,说明他们是同一个人,这个时候你就可以用id来判断两个对象是不是一样;方法:重写equals方法:在方法中判断两个对象的id值,相同则返回true,不相同则放回false

比较类类型实例时,使用等号判断符或equals方法,默认情况下是判断两个实例符号是否指向相同的实例,除非实例对应的类型override了等号算符等判断相等的函数
对于未重写方法的类型,你需要明确判断相等的概念,即是否要判断两个实例的成员相等


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13364960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存