Ограничьте элементы обоих массивов наличием id и соберите значения через Set. Дополнительные поля объектов при этом не участвуют в объединении.
Напишите и типизируйте функцию join, которая принимает два массива объектов с обязательным полем id и возвращает массив уникальных id. Объекты могут содержать любые дополнительные поля.
Ограничьте элементы обоих массивов наличием 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), память пропорциональна числу уникальных идентификаторов.