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'
      }
  • 相关阅读:
    2013第38周日Java文件上传下载收集思考
    2013年第38周六这一刻,行动
    2013年9月20日突然的焦虑
    2013中秋
    2013第38周三
    2013年第38周二
    2013第38周一电话开会邮件
    for循环中一个不容小觑的问题
    NPOI 创建Excel,数据读取与写入
    linux下mysql数据的导出和导入
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/13098155.html
Copyright © 2011-2022 走看看