Насколько сложна эта задача?

Добрый вечер. Сижу на сайте https://learn.javascript.ru/ и зачастую с половиной(иногда больше, иногда меньше) контрольных заданий справиться не могу, например не смог справиться с задачей, что будет ниже и пока плохо даже понимаю её решение, которое есть на сайте... Скажите, сложная ли эта задача для новичка в программировании? Или действительно мне мозгов просто не хватает для программирования и стоит свернуться с этой дорожки?

Пусть arr – массив строк.

Напишите функцию unique(arr), которая возвращает массив, содержащий только уникальные элементы arr.

Например:


function unique(arr) {
  /* ваш код */
}

let strings = ["кришна", "кришна", "харе", "харе",
  "харе", "харе", "кришна", "кришна", ":-O"
];

alert( unique(strings) );
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега JavaScript
♬♬
Если дочитали документацию JavaScript до Set, то решение совсем простое: перевести массив в сет (останутся только уникальные значения), и сет обратно в массив.

upd. неправильно понял задачу. Если надо вернуть только элементы, которых в исходном массиве ровно 1 штука, то надо видимо считать. Сделать объект, где ключи строки, значения число, сколько раз нашлись. { "кришна": 4, "харе": 4, ":-O": 1 }Оставить только те, где значения 1. Собрать в массив.

Или оставить те, что с начала и с конца находятся только «здесь и сейчас»:
const unique = arr => arr.filter((item, i) => i === arr.indexOf(item) && i === arr.lastIndexOf(item));
Ответ написан
Комментировать
e0m
@e0m
начальник отдела телевизионной техники
Довольно простая задача.
Про JAVASCRIPT не вспомню, но в python массив конвертим в множество и измеряем его мощность (длинну)

вот
new Set([iterable]);
не стоило наверное подсказывать, но очень хотелось поумничать
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
задача больше про алгоритмическую сложность
https://stackoverflow.com/questions/9229645/remove...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы