js 判断对象数组里面是否存在重复数据

可以使用 JavaScript 来判断对象数组中是否存在重复数据。下面是一种常见的解决方法:

function hasDuplicate(array) {
  const seen = new Set();

  for (let i = 0; i < array.length; i++) {
    const objString = JSON.stringify(array[i]);
    if (seen.has(objString)) {
      return true;
    }
    seen.add(objString);
  }

  return false;
}

在上述代码中,我们使用了一个 Set 数据结构来存储已经遍历过的对象的字符串表示。遍历数组中的每个对象,将其转换为 JSON 格式的字符串,然后判断该字符串是否已经存在于 Set 中。如果存在,则表示有重复数据,函数返回 true。如果遍历完整个数组后都没有出现重复数据,则函数返回 false

以下是一些示例用法:

const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'John' }];
console.log(hasDuplicate(array1)); // true

const array2 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Bob' }];
console.log(hasDuplicate(array2)); // false

请注意,由于判断重复是基于对象的字符串表示,因此相同内容但不同对象引用的数据将被视为不重复。如果你需要根据对象的某个特定属性来判断重复,可以相应地调整代码中的比较逻辑。

posted @ 2023-07-18 18:21  小小菜鸟04  阅读(2962)  评论(0)    收藏  举报