Довольно простая задача, которая может быть красиво решена как с помощью последней версии JS, так и обычным перебором.
Если вы готовитесь к собеседованию, настоятельно рекомендую: прочитайте статью, откройте JS Fiddle, затем по памяти повторите все варианты решения. Это поможет вам усвоить материал на 20% лучше.
Итак, давайте разберем 2 основных способа решения этой задачи:
Array Filter
Что происходит: Пробегаем по массиву методом filter. Метод filter возвращает значение текущей итерации, если условие возвращает true.
Условие: если в массиве arr существует value из текущей итерации, indexOf возвратит его index. Если этот index совпадёт с index текущей итерации, то мы возвращаем true и добавляем это значение в новый массив уникальных чисел.
Таким образом мы перебираем массив, проверяя попадается ли значение впервые, тем самым не позволяя дублям попасть в новый массив уникальных чисел.
New Set()
Что происходит: Массив не уникальных значений arr помещаем в конструктор коллекции new Set(), который может иметь только уникальные значения. Конструктор возвращает массив уникальных значений, который через spread мы возвращаем в наш массив.
Для кого это?
Данный материал предназначен для новичков и разработчиков, которые решили обновить свои знания о возможностях языка.
Ошибки?
Если вы обнаружили ошибку в тексте статьи или вам есть что добавить, пожалуйста напишите об этом в комментариях. Спасибо!