JS总结之判断数组对象中某个值是否重复
在JavaScript中,可以使用Set对象来检查数组中是否有重复值。Set对象只会保存唯一的值。
值数组
如果你要检查的数组是一个值的集合,并且你想知道这些值是否有重复,可以使用以下代码:
function hasDuplicates(array) { return new Set(array).size !== array.length; }
示例
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
对象数组
如果数组包含对象,并且你想检查某个特定属性的值是否重复,可以使用以下代码:
function hasDuplicateProperty(array, property) { const values = array.map(item => item[property]); return new Set(values).size !== new Set(array).size; }
示例
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
这段代码首先提取对象数组中指定的属性值,然后检查这些值是否与数组长度相同。如果不同,说明有重复的属性值。
浙公网安备 33010602011771号