JavaScript:判断数组对象值是否相同的函数声明

 var obj1 = {
        name: "w",
      };
      var obj2 = {
        name: "w",
      };
     
      function isObjectValueEqual(a, b) {
        // 判断两个对象是否指向同一内存,指向同一内存返回 true
        if (a === b) return true;
        // 获取两个对象键值数组
        let aProps = Object.getOwnPropertyNames(a);
        let bProps = Object.getOwnPropertyNames(b);
        // 判断两个对象键值数组长度是否一致,不一致返回 false
        if (aProps.length !== bProps.length) return false;
        // 遍历对象的键值
        for (let prop in a) {
          // 判断 a 的键值,在 b 中是否存在,不存在,返回 false
          if (b.hasOwnProperty(prop)) {
            // 判断 a 的键值是否为对象,是则递归,不是对象直接判断键值是否相等,不相等返回 false
            if (typeof a[prop] === "object") {
              if (!isObjectValueEqual(a[prop], b[prop])) return false;
            } else if (a[prop] !== b[prop]) {
              return false;
            }
          } else {
            return false;
          }
        } //for
        return true;
      }
      console.log(isObjectValueEqual(obj1, obj2)); // false

 

posted @   しゅおく  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示