js判定两对象是否相等 的 函数

Object对象是引用类型,即使两个对象的所含的内容完全相等,普通的判断(用“==”判断),他们却是不等的(返回false)

let obj1={ name:"cario",age:23};
let obj2={name:"cario",age:23};
obj1 == obj2/// return false

通过以下方法equals进行判断:

function equals(x,y){
    var f1=x instanceof Object;
    var f2=y instanceof Object;
    if(!f1 || !f2){
        return x===y
    }
    if(Object.keys(x).length!== Object.keys(y).length){
        return false
    }
    for(var p in x){
        var a= x[p] instanceof Object; 
        var b= y[p] instanceof Object; 
        if(a && b){
            equals(x[p],y[p])
        }else if(x[p]!=y[p]){
            return false;
        }
    }
      return true;
}

正确判断:

equals(obj1,obj2)// return true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值