@Dyadko_Orest

Как оставить уникальные объекты из двух массивов?

У меня есть два массива объектов и некоторые из них идентичны. Я пробовал различные методы для того чтобы оставить только уникальные но почему-то мне возвращает или массив с дубликатами объектов или пустой массив

const arr1 = [
   { userId: 15, teamId: 25 },
   { userId: 3, teamId: 616 },
   { userId: 3, teamId: 617 }
] 

const arr2 =	[ 
	{ userId: 3, teamId: 616 }, 
	{ userId: 15, teamId: 25 } 
]

const uniq = arr1.concat(arr2.filter(function (item) {
    return arr1.indexOf(item) < 0;
})); //возвращает является массив с дубликатами

const arr3 = arr1.concat(arr2);
let unique = [...new Set(test.map(item => item))];  //возвращает является массив с дубликатами
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 2
Krasnodar_etc
@Krasnodar_etc
fundraiseup
const arr3 = arr1.filter(item => !arr2.some(secondItem => secondItem.userId === item.userId));
Ответ написан
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
В этом примере все объекты уникальны - сравнение-то делается по ссылке на объект.
Так что сравнивай не сами объекты, а из значения - пары (userId, teamId)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы