使用循环遍历数组,比较对象的属性值是否相同,如果存在相同的对象,则返回 true,否则返回 false。

以下是一个示例代码:

function hasDuplicateObject(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (isEqual(arr[i], arr[j])) {
        return true;
      }
    }
  }
  return false;
}

function isEqual(obj1, obj2) {
  const keys1 = Object.keys(obj1);
  const keys2 = Object.keys(obj2);
  if (keys1.length !== keys2.length) {
    return false;
  }
  return keys1.every(key => obj1[key] === obj2[key]);
}

上面的代码中,hasDuplicateObject 函数接受一个数组作为参数,循环遍历数组中的所有对象,调用 isEqual 函数比较两个对象是否相同。如果存在相同的对象,则返回 true,否则返回 false。

isEqual 函数接受两个对象作为参数,比较它们的所有属性是否相同。如果两个对象的属性数量不同,则它们不相等。使用 Object.keys 方法获取两个对象的属性名,然后使用 every 方法遍历所有属性,比较它们的属性值是否相同。如果所有属性的值都相同,则两个对象相等。

JavaScript 数组对象去重:高效检测重复对象

原文地址: https://www.cveoy.top/t/topic/nAz7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录