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
如果数组包含对象,并且你想检查某个特定属性的值是否重复,可以使用以下代码:
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
这段代码首先提取对象数组中指定的属性值,然后检查这些值是否与数组长度相同。如果不同,说明有重复的属性值。
版权归原作者 前端技术栈 所有, 如有侵权,请联系我们删除。