> Как удалить дубликаты из массива чисел и строк без использования Set в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Tilda
Стек: JavaScript
> Пример ответа
Для удаления дубликатов из массива чисел и строк без использования Set можно применить несколько подходов. Самый простой и наглядный - использовать объект в качестве хеш-таблицы:
JAVASCRIPTfunction removeDuplicates(arr) {const seen = {};const result = [];for (let i = 0; i < arr.length; i++) {const item = arr[i];// Ключом делаем строковое представление, чтобы различать числа и строкиconst key = typeof item + ':' + item;if (!seen[key]) {seen[key] = true;result.push(item);}}return result;}// Пример использованияconst mixedArray = [1, '1', 2, 1, '2', 2, 'hello', 'hello'];console.log(removeDuplicates(mixedArray)); // [1, '1', 2, '2', 'hello']
Альтернативный вариант с использованием filter и indexOf (менее эффективен для больших массивов):
JAVASCRIPTfunction removeDuplicates(arr) {return arr.filter((item, index) => {return arr.indexOf(item) === index;});}
Первый метод предпочтительнее, так как работает за O(n), в то время как второй - за O(n²) из-за вложенного поиска indexOf.
> Похожие задачи по frontend
Как управлять очередностью загрузки и выполнения скриптов в JavaScript
Как реализуется инкапсуляция в JavaScript
Как проходят таски в event loop
Как улучшить сигнатуру функции, чтобы избежать передачи undefined?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью