javascript - 如何检查对象数组是否具有具有更多属性的重复属性值?

标签 javascript arrays ecmascript-6 duplicates

我搜索了 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/

相关文章:

javascript - page.$$eval() 未按预期工作(Puppeteer)

c - 这个程序中&a[0]和a有什么区别?

javascript - Image.onload 回调触发不一致

javascript - 为什么需要用super()访问基类构造函数?

javascript - SAPUI5:自定义控件未加载到表 groupHeaderFactory 中

JavaScript Jquery 不起作用。 $(这个)

ios - 在 Swift 中创建线程安全数组

PHP 比较两个关联数组并创建一个具有匹配项的新数组的最佳方法

javascript - 如何使用 Web Crypto API 创建哈希?

javascript - 确定图像跨浏览器的原始大小?