zoukankan      html  css  js  c++  java
  • 对象比较-深层,浅层

    1.当对象只有1层的时候 只需要做下浅层对比就好了

    shallowEqual=(...object)=>{
        let firstObject=object[0]
        let flag=true
        object.map(item=>{
          if(Object.keys(item).length !== Object.keys(firstObject).length){
            return flag=false
          }
        })
        if(!flag){
          return flag
        }
        object.map(item=>{
          let array=Object.keys(item)
          array.map(key=>{
            if(item[key] !== firstObject[key]){
              flag=false
            }
          })
        })
        return flag
      }

    2.当对象属性中包含对象时,需要用深层比较

    deepEqual=(...object)=>{
        let firstObject=object[0]
        let flag=true
        object.map(item=>{
          if(Object.keys(item).length !== Object.keys(firstObject).length){
            flag=false
          }
        })
        if(!flag){
          return flag
        }
        for(let i=0 ; i<object.length;i++){
          let array=Object.keys(object[i])
          for(let j=0; j<array.length;j++){
            // 1.判断当前比较的是否为对象 是就对比第一对象里的值是否也是对象
            if(this.isObject(object[i][array[j]])){
              //是对象
              if(this.isObject(firstObject[array[j]])){
                // 第一对象里对应的值也是对象
                flag=this.deepEqual(object[i][array[j]],firstObject[array[j]])
              }else{
                flag=false
              }
            }else{
              //不是对象
              if(object[i][array[j]]!==firstObject[array[j]]){
                flag=false
              }
            }
            if(!flag){
              return flag
            }
          }
          if(!flag){
            return flag
          }
        }
        return flag
      }
    
      isObject=(object)=>{
        return object !==null && typeof object === 'object'
      }
  • 相关阅读:
    MYSQL存储引擎
    微信公众号自定义菜单
    TCP 三次握手与四次挥手
    微信扫码关注公众号并登录网站
    redis scan命令使用
    [转]Maven多模块结构下版本管理的正确姿势-revision
    线程间的协作wait,notify,sleep,yield,join
    GIT 撤销操作
    Kafka学习理解-listeners配置
    Kafka 简介梳理
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/13098155.html
Copyright © 2011-2022 走看看