Я работаю веб-разработчиком около полугода. Я начал заниматься веб-разработкой летом 2018 года. После прохождения курсов на udemy.com и codecademy.com в январе этого года я начал полнофункциональную программу веб-разработки в CareerFoundry. Между прочим, это отличный курс, и я смог устроиться веб-разработчиком на полный рабочий день, пройдя около 50% курса. Я закончил курс при моей новой работе 28 октября.

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

Перевернуть строку

Один из первых алгоритмов, который нужно написать, — это написать функцию, которая переворачивает строку и возвращает эту перевернутую строку. Я разработал свой собственный алгоритм, который выглядел так:

Что я сделал:

  • преобразование переданной строки в массив с помощью .split() и присвоение ее переменной stringArray
  • объявление пустого reversedArray
  • итерация по stringArray, начиная с конца массива
  • помещая каждый элемент в новый reversedArray
  • преобразование reversedArray обратно в строку с использованием .join() и назначение его reversedString
  • наконец, верните reversedString

.расколоть()

Метод .split() принимает два необязательных параметра: разделитель и ограничение, .split(separator, limit). Он возвращает массив, содержащий разделенные значения. Я использовал пустую строку в качестве разделителя, который разделяет строку между каждым символом.

.присоединиться()

Метод .join() принимает только один параметр, разделитель, .join(separator). Он возвращает массив в виде строки. Разделителем по умолчанию является запятая. Таким образом, в нашем случае отсутствие передачи пустой строки в качестве разделителя приведет к:

// output ‘o,l,l,e,h’

Другие решения

Другой подход, который я нашел при проверке решений, был следующим:

Этот алгоритм не изменяет структуру данных для обращения строки. Он объявляет пустую строку reversedStr. Цикл for перебирает переданную строку с конца, как я делал в своей функции. Внутри цикла for текущий элемент добавляется к reversedStr с помощью оператора +=. По завершении функция возвращает reversedStr.

Второй вариант такой:

Этот алгоритм использует методы цепочки. Он просто возвращает переданную строку с помощью связанных методов .split().reverse().join(). Мы обсуждали .split() и .join() выше. Новым здесь является метод .reverse(). Он просто меняет порядок элементов в массиве. Так что этот метод просто делает то, что мой цикл for сделал для меня :-)

Резюме

Как всегда, у нас есть разные варианты решения проблемы. Всегда хорошо искать другие подходы и быть открытым для них. Это все об обучении и расширении знаний.

Удачного кодирования!