我搜索了 StackOverflow 并找到了这个 answer ,但这并不能解决我的问题。
我的问题是,我的数组是这样的:
let arr = [
{type: 1, id: 1, name:'aa'},
{type: 1, id: 1, name:'bb'},
{type: 2, id: 1, name:'cc'}
]
我需要找到相同的type
和相同的id
,然后识别出这是重复的对象。上面的 arr[0]
和 arr[1]
是重复的,但 arr[0]
和 arr[2]
不是。我尝试过使用 ES6 方法,例如 .some()
、.every()
和 Set()
,但这些方法都没有为我工作。我该如何解决这个问题?
最佳答案
您可以使用.map()
将每个对象映射到字符串。每个字符串都采用该对象的 type-id
形式。然后,使用 Set
您可以删除所有重复的字符串。然后,您可以检查设置的大小是否等于数组长度,以确定数组中是否存在重复项:
const containsDups = arr => new Set(arr.map(({type, id}) => `${type}-${id}`)).size !== arr.length;
const arr = [{type: 1, id: 1, name:'aa'},{type: 1, id: 1, name:'bb'},{type: 2, id: 1, name:'cc'}];
console.log(containsDups(arr));
关于javascript - 如何检查对象数组是否具有具有更多属性的重复属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60389972/