您好,欢迎来到99网。
搜索
您的当前位置:首页简单判断两个对象值相等

简单判断两个对象值相等

来源:99网

简单判断两个对象值相等

/* 判断两个数组值相等
@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'}))
    以上是个人思路和想法,可能存在很大问题,如果你们还有其他想法,或者存在错误,请在评论上评论,谢谢

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务