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

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

posted on 2024-09-27 14:44  梁飞宇  阅读(899)  评论(0)    收藏  举报