js判断两个对象是否全等

来源:互联网 发布:怎么才能让淘宝排名靠前 编辑:程序博客网 时间:2024/04/30 07:04
function isObject(arr){    return Object.prototype.toString.call(arr) === '[object Object]';}
function isEqual(obj1, obj2){    if(isEqual.result === undefined){        isEqual.result = false;    }    if(obj1 === obj2){       return true;    }    for(var i in obj1){        if(i in obj2){            //如果是对象,那么递归            if(isObject(obj1[i])){                isEqual.result = false;                isEqual(obj1[i], obj2[i]);            }else{                //如果为null或undefined 将不具备 toString方法                if(obj1[i] !== null && obj2[i] !== null && obj1[i] !== undefined && obj2[i] !== undefined){                    if(obj1[i].toString() !== obj2[i].toString()){                //转换为字符串判断是否全等。                        isEqual.result = false;                    }else{                        isEqual.result = true;                    }                }else{                    if(obj1[i] === obj2[i]){                        isEqual.result = true;                    }else{                        isEqual.result = false;                    }                }            }        }else{            isEqual.result = false;        }    }   return isEqual.result;}var obj1 = {c: [1,3], a: {e: {e: 10}}};var obj2 = {c: [1,3], a: {e: {e: 10}}};console.log(isEqual(obj1, obj2)) //true

0 0