> Можно ли использовать массив или объект для хранения уникальных значений в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: amoCRM

Стек: JavaScript

> Пример ответа

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

Массив: для хранения уникальных значений придётся проверять наличие элемента перед добавлением, например, через indexOf или includes. Это неэффективно при больших объёмах данных (O(n) на каждую проверку). Пример:

JAVASCRIPT
const uniqueArray = [];
function addUnique(value) {
if (!uniqueArray.includes(value)) {
uniqueArray.push(value);
}
}

Объект: можно использовать как хеш-таблицу, где ключи - уникальные значения (например, строки или числа). Это даёт O(1) на проверку и добавление, но подходит только для примитивов (строки, числа) или сериализованных объектов. Пример:

JAVASCRIPT
const uniqueSet = {};
uniqueSet['value1'] = true;
uniqueSet['value2'] = true;
// Ключи объекта гарантированно уникальны

Однако лучший способ в современном JavaScript - использовать Set, который изначально гарантирует уникальность и оптимизирован для этого:

JAVASCRIPT
const mySet = new Set();
mySet.add(1);
mySet.add(1); // Игнорируется

Таким образом, массивы и объекты можно приспособить, но это костыль. Для production-кода предпочтительнее Set или Map.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью