Напишите и типизируйте функцию join, которая принимает два массива объектов с обязательным полем id и возвращает массив уникальных id. Объекты могут содержать любые дополнительные поля.

Ограничьте элементы обоих массивов наличием id и соберите значения через Set. Дополнительные поля объектов при этом не участвуют в объединении.

Короткий ответ

Что ответить на собеседовании

Ограничьте элементы обоих массивов наличием id и соберите значения через Set. Дополнительные поля объектов при этом не участвуют в объединении.

Подробный разбор

Ответ с пояснениями

Ограничьте элементы обоих массивов наличием id и соберите значения через Set. Дополнительные поля объектов при этом не участвуют в объединении.

Пример допускает строковые и числовые ID, сохраняя порядок первого появления.

function join<A extends { id: string | number }, B extends { id: string | number }>(
  first: readonly A[], second: readonly B[]
): Array<string | number> {
  const ids = new Set<string | number>();
  for (const item of first) ids.add(item.id);
  for (const item of second) ids.add(item.id);
  return [...ids];
}

Число 1 и строка '1' остаются разными ID. Ожидаемое время O(n + m), память пропорциональна числу уникальных идентификаторов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее