zoukankan      html  css  js  c++  java
  • javascript实现deepEqual和shallowEqual

    function deepEqual(x, y) {
        if (x === y) {
            return true;
        }
        if (!(typeof x == "object" && x != null) || !(typeof y == "object" && y != null)){
            return false;
        }
        //比较对象内部
        if (Object.keys(x).length != Object.keys(y).length){
            return false;
        }
        for (var prop in x) {
            if (y.hasOwnProperty(prop))
            {  
                if (!deepEqual(x[prop], y[prop])){
                    return false;
                }
            }
            else{
                return false;
            }
        }
        return true;
    }
    function shallowEqual(objA,objB){
        if(objA === objB){
            return true;
        }
        if(!(typeof objA === 'object' && objA != null) || !(typeof objB === 'object' && objB != null)){
            return false;
        }
        const keysA = Object.keys(objA);
        const keysB = Object.keys(objB);
        if(keysA.length !== keysB.length){
            return false;
        }
        for(let i = 0;i< keysA.length;i++){
            if(objB.hasOwnProperty(keysA[i])){
                if(objA[keysA[i]] !== objB[keysA[i]]){
                    return false;
                }
            }
            else{
                return false;
            }
        }
        return true;
    }

    参考:https://stackoverflow.com/questions/25456013/javascript-deepequal-comparison#

  • 相关阅读:
    java socket
    eclipse汉化包
    Java中的Integer和int
    linux安装docker
    linux安装maven及配置
    zookeeper入门001
    java-jvm类加载-001笔记
    jvm类加载
    Java中的<< 和 >> 和 >>> 介绍
    linux安装mysql5.7.27
  • 原文地址:https://www.cnblogs.com/mengff/p/9664287.html
Copyright © 2011-2022 走看看