判断对象内容是否一样(不是同一个指针)

2021-07-05  本文已影响0人  弹力盒

判断对象的内容是否一样,不判断两个对象是否为同一个指针

export function isObjectDiff(obj1, obj2) {
  var o1 = obj1 instanceof Object;
  var o2 = obj2 instanceof Object;
  // 判断是不是对象
  if (!o1 || !o2) {
    return obj1 === obj2;
  }

  // Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,
  if (Object.keys(obj1).length !== Object.keys(obj2).length) {
    return false;
  }

  for (var o in obj1) {
    var t1 = obj1[o] instanceof Object;
    var t2 = obj2[o] instanceof Object;
    if (t1 && t2) {
      return isObjectDiff(obj1[o], obj2[o]);
    } else if (obj1[o] !== obj2[o]) {
      return false;
    }
  }
  return true;
}
上一篇下一篇

猜你喜欢

热点阅读