Напишите функцию, которая проверяет, есть ли в массиве дубликаты.

Для фильтрации дубликатов из массива можно использовать объект Set, который хранит только уникальные значения.

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

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

Для фильтрации дубликатов из массива можно использовать объект Set, который хранит только уникальные значения. Но для объектов Set не подходит, потому что Set сравнивает объекты по ссылке, а не по содержимому. То есть два разных объекта с одинаковыми полями будут считаться разными элементами.

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

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

Для фильтрации дубликатов из массива можно использовать объект Set, который хранит только уникальные значения. Но для объектов Set не подходит, потому что Set сравнивает объекты по ссылке, а не по содержимому. То есть два разных объекта с одинаковыми полями будут считаться разными элементами.

Пример функции фильтрации дубликатов для примитивных значений:

function uniqueArray(arr) {
  return [...new Set(arr)];
}

Для объектов нужно реализовать сравнение по содержимому, например, с помощью сериализации в JSON или глубокого сравнения:

function uniqueObjects(arr) {
  const seen = new Set();
  return arr.filter(item => {
    const serialized = JSON.stringify(item);
    if (seen.has(serialized)) {
      return false;
    } else {
      seen.add(serialized);
      return true;
    }
  });
}

Этот способ работает, если порядок ключей и типы данных в объектах стабильны. Для более сложных случаев используют глубокое сравнение или специализированные библиотеки.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку