简单判断两个对象值相等

简单判断两个对象值相等

/* 判断两个数组值相等
@params Array(arr1)
@params Array(arr1)
@return Boolean(flag)
/
function equalArray(arr1,arr2) {
let flag=true; //先假设两个数组值相等
arr1=Array.from(new Set(arr1)); //先去重,之后转换成数组
arr2=Array.from(new Set(arr2));
// console.log(arr1,arr2)
if(arr1.length!=arr2.length) {
flag=false;
} else {
for(let i=0;i<arr1.length;i++) {
if(!arr2.includes(arr1[i])) {
flag=false;
}
}
}
return flag;
}
/

@params obj1(Object)
@params obj2(Object)
@return flag(Boolean) 为true值相等,为false值不相等
*/

    function equalObject(obj1, obj2) {
        let flag = true;    //先假设两个对象值相等
        let len1 = Object.keys(obj1); //通过Object.keys()方法变成对象中key变成数组元素
        let len2 = Object.keys(obj2);
        if (len1.length != len2.length) { // 如果两者长度不一致,则两者key个数不一样,那么显而知道两个对象值不相等  
            flag = false;
        } else {  //两者长度一致
            if (!equalArray(len1, len2)) {  // 如果两者长度一致,但两者key值存在不同,那么这两者对象值就不相等
                flag = false;
            } else { //两者key值一样
                for (let key in obj1) {
                    if (obj1[key] != obj2[key]) { //如果两者的value值存在不一样,则两者对象值就不一样
                        flag = false;
                    }
                }
            }
        }
        return flag;
    }
    let obj1 = { name: 'hong', age: 18 };
    let obj2 = { age: 18, name: 'hong' }
    console.log(equalObject(obj1, obj2),equalObject({name:'hsc'},{names:'hsc'}))
    以上是个人思路和想法,可能存在很大问题,如果你们还有其他想法,或者存在错误,请在评论上评论,谢谢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值