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

在JavaScript中,可以使用Set对象来检查数组中是否有重复值。Set对象只会保存唯一的值。如果你要检查的数组是一个值的集合,并且你想知道这些值是否有重复,可以使用以下代码:

function hasDuplicates(array) {

return new Set(array).size !== array.length;

}

// 示例

const arrayWithDuplicates = [1, 2, 3, 4, 5, 1];

const arrayWithoutDuplicates = [1, 2, 3, 4, 5];

console.log(hasDuplicates(arrayWithDuplicates)); // 输出: true

console.log(hasDuplicates(arrayWithoutDuplicates)); // 输出: false
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

如果数组包含对象,并且你想检查某个特定属性的值是否重复,可以使用以下代码:

function hasDuplicateProperty(array, property) {

const values = array.map(item => item[property]);

return new Set(values).size !== new Set(array).size;

}

// 示例

const arrayOfObjects = [

{ id: 1, name: 'Alice' },

{ id: 2, name: 'Bob' },

{ id: 3, name: 'Charlie' },

{ id: 1, name: 'Alice' }

];

console.log(hasDuplicateProperty(arrayOfObjects, 'id')); // 输出: true

console.log(hasDuplicateProperty(arrayOfObjects, 'name')); // 输出: false
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

这段代码首先提取对象数组中指定的属性值,然后检查这些值是否与数组长度相同。如果不同,说明有重复的属性值。