Я работаю веб-разработчиком около полугода. Я начал заниматься веб-разработкой летом 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 сделал для меня :-)
Резюме
Как всегда, у нас есть разные варианты решения проблемы. Всегда хорошо искать другие подходы и быть открытым для них. Это все об обучении и расширении знаний.
Удачного кодирования!