随笔 - 223  文章 - 0 评论 - 6 阅读 - 39万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

 深度比较

复制代码
function isObject(obj) {
  return typeof obj === 'object' && obj !== null
}
function isEqual(obj1, obj2) {
  if (!isObject(obj1) || !isObject(obj2)) {
    return obj1 === obj2;
  }

  if (obj1 === obj2) {
    return true;
  }

  let obj1keys = Object.keys(obj1);
  let obj2keys = Object.keys(obj2);

  if (obj1keys.length !== obj2keys.length) {
    return false;
  }

  for(let k in obj1) {
    const res = isEqual(obj1[k], obj2[k]);
    if (!res) {
      return false
    }
  }
  return true;
}
复制代码

 深拷贝

复制代码
function deepClone(data) {
  if (typeof data === 'object') {
    let result;
    if (data instanceof Array) {
      result = [];
    } else {
      result = {};
    }
    for(let key in data) {
      // 保证key 不是原型的属性
      if (data.hasOwnProperty(key)) {
        if (typeof data[key] !== 'object') {
          result[key] = data[key];
        } else {
          result[key] = deepClone(data[key]);
        }
      }
    }
    return result;
  } else {
    return data;
  }
}
复制代码

 

posted on   浅唱年华1920  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示