Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: string, set, unique, deduplication

Как удалить дублирующиеся значения из строки?

Вопрос проверяет умение работать со строкой как с набором символов/токенов и знание Set или других способов дедупликации.

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

Проще всего преобразовать строку в массив, удалить дубли через Set и собрать обратно. Если нужно удалить дубли символов — используйте new Set(str) и join. Если нужно удалить дубли слов — сначала разбейте строку по пробелам (split), примените Set, затем join. Важно уточнить, что именно считается “дублем”: символы, слова или подстроки.

Длинный ответ

Способ зависит от того, что именно дублируется и как нужно сохранить порядок.

Определение

  • Дедупликация — удаление повторяющихся элементов, оставляя только уникальные.

Дубли символов (оставляем первое вхождение, сохраняем порядок)

const s = "abacaba";
const unique = [...new Set(s)].join("");
console.log(unique); // "abc"

Что происходит

  1. new Set(s) перебирает строку как последовательность символов и хранит уникальные.

  2. [...] превращает Set обратно в массив.

  3. join("") собирает строку.

Дубли слов (разделитель — пробел)

const s = "cat dog cat bird dog";
const unique = [...new Set(s.split(" "))].join(" ");
console.log(unique); // "cat dog bird"

Вариант: нормализация (если важно убрать лишние пробелы)

const s = "cat  dog   cat";
const words = s.trim().split(/\s+/); // несколько пробелов → один разделитель
const unique = [...new Set(words)].join(" ");
console.log(unique); // "cat dog"

Если важно сохранить регистр или наоборот игнорировать его

Игнорировать регистр, но сохранить оригинальный вид первого встретившегося слова:

const s = "Cat cat DOG dog";
const words = s.split(" ");

const seen = new Set();
const unique = [];

for (const w of words) {
  const key = w.toLowerCase();
  if (!seen.has(key)) {
    seen.add(key);
    unique.push(w);
  }
}

console.log(unique.join(" ")); // "Cat DOG"

Вывод

Для удаления дублей в строке чаще всего используют Set:

  • для символов: [...] + Set + join("")

  • для слов/токенов: split(...) + Set + join(...)
    Ключевое — правильно выбрать “единицу уникальности” (символ, слово, токен) и нужный разделитель.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#string

#set

#unique

#deduplication

Подпишись на React Developer в телеграм