搜索
简帛阁>技术文章>如何深入比较两个对象是否相等

如何深入比较两个对象是否相等

话不多说直接上代码,另外不考虑是函数的情况

    /**
     * 判断是否是对象
     * @param { object } obj 
     */
    function isObj(obj){
        return  typeof obj === 'object' && obj!== null
    }
    /**
     * 深入比较
     * @param { object } obj1 
     * @param { object } obj2
    */
    function isEqual(obj1,obj2){
        //如果不是对象直接对比返回
        if(!isObj(obj1) || !isObj(obj2)){
            //值类型比较
            return obj1 === obj2
        }
        //如果两个对象一样相等则返回true
        if(obj1 === obj2) {
            return true
        }

        const obj1Keys = Object.keys(obj1)
        const obj2Keys = Object.keys(obj2)

        //遍历obj1
        for(let key in obj1) {
            const res = isEqual(obj1[key], obj2[key])
            if(!res) return false
        }

        //以上情况都不是就是全相等
        return true
    }

  

话不多说直接上代码,另外不考虑是函数的情况/***判断是否对象*@param{object}obj*/functionisObj(obj){returntypeofobj'object'obj!n
一个前端同事遇到的面试题,抽空写了写,也算是个积累1先准备三个工具方法,用于判断是否对象类型,是否是数组,获取对象长度1functionisObj(object){2returnobjecttype
java比较两个对象,可以通过重写equals()实现。1比较对象时,比较的是地址,而equals()比较的是对象内容2重写equals()方法必须重写hashCode()示例代码如下:Person
在js前端面试过程中,经常会遇到这样的笔试题:JS中如何比较两个Json对象是否相等实例代码,下面小编抽点时间给大家整理下,一起看看吧。1.先准备三个工具方法,用于判断是否对象类型,是否是数组,获取
本文实例讲述了JavaScript比较两个对象是否相等的方法。分享给大家供大家参考。具体如下:在Python中可以通过cmp()内建函数来比较两个对象所包涵的数据是否相等(数组、序列、字典)。但是在j
前言本文主要给大家介绍了关于利用php如何比较浮点数是否相等的相关内容,下面话不多说了,来一起看看详细的介绍吧看下面这段代码,09+01的相加结果与1进行比较<php$a09;$b01;$tot
functionCompare(objA,objB){if(!isObj(objA)||!isObj(objB))returnfalse;//判断类型是否正确if(getLength(objA)!ge
比较两个字符串是否相等的办法是:if[$testxtestx];then这里的关键有几点:1使用单个等号2注意到等号两边各有一个空格:这是unixshell的要求3注意到$testx最后的x,这是特
本文实例讲述了C使用Equals()方法比较两个对象是否相等的方法。分享给大家供大家参考。具体如下:intprice=100;intamount=1000if(priceEquals(amount))
代码如下://比较数组是否相同modelercompArrayfunction(array1,array2){if((array1typeofarray1"object"array1construct