js 判断对象数组中 某一个字段值是否重复

如果你想要判断对象数组中的某个字段值是否重复,你可以使用 JavaScript 的 find() 方法结合一个哈希表(即对象)来实现。下面是一个示例:

function hasDuplicateField(array, field) {
  const map = {};

  for (let i = 0; i < array.length; i++) {
    const value = array[i][field];
    if (map[value]) {
      return true;
    }
    map[value] = true;
  }

  return false;
}

在上述代码中,我们遍历对象数组中的每个对象,将对象的某个字段的值作为键存储在一个哈希表 map 中。如果遍历到的对象的字段值已经存在于 map 中,说明存在重复,函数返回 true。否则,将字段值作为键,并将对应的值设为 true,表示该字段值已经出现,继续遍历下一个对象。如果遍历完整个数组后都没有出现重复的字段值,则函数返回 false

以下是一个示例用法:

const array1 = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'John' }
];

console.log(hasDuplicateField(array1, 'name'));  // true,name 字段存在重复

const array2 = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

console.log(hasDuplicateField(array2, 'name'));  // false,name 字段没有重复

你可以根据需要将 hasDuplicateField() 函数应用到你的对象数组和特定的字段上来判断是否存在重复的字段值。

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