Допустим, у вас есть:
arr = [
{ id:10, name: 'someName1' },
{ id:10, name: 'someName2' },
{ id:11, name: 'someName3' },
{ id:12, name: 'someName4' }
]
Итак, чтобы получить уникальные предметы:
unique = arr
.map(e => e['id'])
.map((e, i, final) => final.indexOf(e) === i && i)
.filter(obj=> arr[obj])
.map(e => arr[e]);
Тогда результат будет
unique = [
{ id:10, name: 'someName1' },
{ id:11, name: 'someName3' },
{ id:12, name: 'someName4' }
]
И, чтобы получить дубликаты идентификаторов:
duplicateIds = arr
.map(e => e['id'])
.map((e, i, final) => final.indexOf(e) !== i && i)
.filter(obj=> arr[obj])
.map(e => arr[e]["id"])
Список идентификаторов будет
duplicateIds = [10]
Таким образом, чтобы получить дубликаты объектов:
duplicate = arr.filter(obj=> dublicateIds.includes(obj.id));
Теперь у вас есть:
duplicate = [
{ id:10, name: 'someName1' },
{ id:10, name: 'someName2' }
]
Спасибо https://reactgo.com/removeduplicateobjects/