深度比较

Posted chenlw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度比较相关的知识,希望对你有一定的参考价值。

let obj1 = {
    a:111,
    b:"hahah",
    c:{
        name:"qaz",
        age:45
    },
    d:[1,2,3,4]
}
let obj2 = {
    a: 111,
    b: "hahah",
    c: {
        name: "qaz",
        age: 45
    },
    d: [1, 2, 3, 5]
}
let obj3 = 1111;
let obj4 = 1111;
console.log(obj1===obj2)//false
console.log(objSame(obj1, obj2))//true

function objType(obj){
    return typeof obj !=‘object‘ && obj !=null ? true: false;
}

function objSame(obj1, obj2){
    if (objType(obj1) || objType(obj2)){
        return obj1 === obj2;
    }
    if (obj1 === obj2){
        return true;
    }
    let key1 = Object.keys(obj1);
    let key2 = Object.keys(obj2);
    if (key1.length != key2.length){
        return false;
    }
    for (let i in obj1){
        let res = objSame(obj1[i], obj2[i])
        if (!res){
            return false;
        }
    }
    return true;
}

 

以上是关于深度比较的主要内容,如果未能解决你的问题,请参考以下文章

在PaddlePaddle中的Notebook代码片段

深度测试

比较 C# 中的字符串片段并从集合中删除项目

模板测试

在执行深度预测试的同时写入 gl_FragDepth

启用 Proguard 后无法实例化片段