js判断两个对象是否相等

前言

对象是引用类型数据,变量中存储的是其在堆中的内存地址,所以当两个对象进行 == 和 === 运算时,会对比其堆中的地址,而非两个对象的值。

下面提供几种可以判断对象值是否相等的方法。

方法一:

JSON.stringify(obj1) === JSON.stringify(obj2)

方法二:

function isObjectEqual(obj1, obj2) {
  const obj1Keys = Object.keys(obj1);
  const obj2Keys = Object.keys(obj2);

  if (obj1Keys.length !== obj2Keys.length) {
    return false;
  }

  for (let key of obj1Keys) {
    if (obj1[key] !== obj2[key]) {
      return false;
    }
  }

  return true;
}

你可能感兴趣的:(JavaScript,javascript,开发语言,ecmascript)