@bzotsss

Как проверить что в коллекции map содержатся два одинаковых элемента?

Всем привет , может кто подсказать как проверить что в коллекции map содержатся два одинаковых элемента ? Например есть такая коллекция map :

Map(4) {
'0' => { id: 1 },
'1' => { id: 2 },
'2' => { id: 3 },
'3' => { id: 1 }
}

Как я могу проверить что в ней есть два одинаковых эл. ? В данном случае два обьекта c id : 1
  • Вопрос задан
  • 132 просмотра
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
Циклом.
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Проверяем факт наличия дубликатов:

const hasDuplicates = map.size > new Set(Array.from(map, n => n[1].id)).size;

Смотрим, кто конкретно повторяется:

const duplicates = Array
  .from([...map].reduce((acc, [ , { id } ]) => acc.set(id, acc.has(id)), new Map))
  .reduce((acc, n) => (n[1] && acc.push(n[0]), acc), []);

Вычисляем, кто сколько раз представлен в исходных данных:

const count = Array
  .from(map.values())
  .reduce((acc, { id }) => acc.set(id, -~acc.get(id)), new Map);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы