1、使用 Array.some()
方法和自定义比较函数:
使用
Array.some()
方法遍历数组,对每个元素执行自定义的比较函数。比较函数使用Array.findIndex()
方法来查找与当前元素相等且索引不同的元素,如果找到则表示存在重复元素。
const array = [
{ value: '值1' },
{ value: '值2', key: 1688713651911 },
{ value: '值2', key: 1688713651347 }
]
// 判断对象数组是否有相同属性 相同:true \ 不相同:false
hasDuplicates(array) {
return array.some((item, index) => {
return (
array.findIndex((v, i) => {
return (
i !== index &&
JSON.stringify(v.value) === JSON.stringify(item.value)
)
}) !== -1
)
})
}
console.log(hasDuplicates(array)); //true
2、使用 Set
数据结构:
使用
Set
数据结构来去除重复元素,并比较Set
的长度与原数组的长度是否相等,如果不相等则表示存在重复元素。文章来源:https://www.toymoban.com/news/detail-641690.html
const array = [{ name: '值1' }, { name: '值2' }, { name: '值2' }];
function hasDuplicates(array) {
// array.map(JSON.stringify):对数组进行映射操作,将每个对象元素转换为相应的字符串表示。
// new Set(...) 它类似于数组,但只包含唯一的值,不会有重复项。
const set = new Set(array.map(JSON.stringify));
return set.size !== array.length;
}
console.log(hasDuplicates(array)); // true
请注意,这些方法中的比较函数使用 JSON.stringify()
来将对象转换为字符串进行比较。这种方法适用于包含简单属性的对象,如果对象中包含函数或循环引用等复杂情况,需要使用其他方式来比较对象的相等性。文章来源地址https://www.toymoban.com/news/detail-641690.html
到了这里,关于js判断对象数组中的元素是否存在重复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!