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'
      }
  • 相关阅读:
    5_添加购物车 View+Con
    5_添加购物车 B+M
    5_添加购物车 D
    登录注册V
    bootstrap-标题
    h5整理--详解css的相对定位和绝对定位
    各大门户网站的css初始化代码
    九月二十八JS验证
    js函数和运算符
    4.1原始表达式 9/16
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/13098155.html
Copyright © 2011-2022 走看看