Курсы javascript
Читая статьи на Хабре иногда попадается что программистам на собеседованиях задают следующее задание.
Нужно создать функцию которая будет принимать любую текстовую строку и возвращать эту же строку, только в перевернутом виде. Тоесть передаем ‘Привет мир!’ получаем ‘!рим тевирП’.
Это задание задавалось для программистов знающих PHP или C++, но я подумал «А как бы я решил это используя JavaScript». Решение получилось очень легким.
А как бы Вы решили это задание на JavaScript ?
P.S. Свое решение выложу ближе к вечеру. Хотя уверен что его предложат одним из первых.
Как перевернуть строку в javascript
Автор: br0ke
Текстовые метки: javascript, js, string, reverse, split, join
Раздел: Информационные технологии — JavaScript
Запись: and-semakin/mytetra_data/master/base/1519482154ze78q5s5ne/text.html на raw.githubusercontent.com
Наиболее простой способ переворачивания строки задом-наперед в JavaScript состоит из использования трех методов:
- split — разбивает строку на символы;
- reverse — переворачивает массив;
- join — собирает строку из массива.
- How to make an AJAX call without jQuery?
- JavaScript: setTimeout и setInterval
- События DOM
- Всплывающие модальные окна в JavaScript
- Получить случайное число в указанном диапазоне на JavaScript
- Вставка и удаление элементов из массива в JavaScript
- Перевернуть строку в JavaScript
- Цикл по массиву в JavaScript
- Использование точки с запятой «;» в JavaScript
- Комментарии в JavaScript
- Отключение защиты в Chrome\Chromium
- Извлечение переменной из localStorage со значением по умолчанию
- Получить адрес страницы в JavaScript
- Вывести число с ведущими нулями (leading zeros) в JavaScript
- Конвертировать строку в число в JavaScript
- Проверить, что массив существует и он не пуст в JavaScript
- Конвертировать обычный объект в Map в JavaScript ES6
- Операции над множествами в JavaScript
- Создать глубокую копию многомерного массива в JavaScript
- Сравнить два массива в JavaScript
- Получить случайный элемент из массива в JavaScript
- Проверить, что в массиве JavaScript есть элемент, удовлетворяющий условию
- Получить список глобальных переменных в JavaScript
- Вывести стек вызовов в JavaScript
- Многострочные строки в JavaScript
- Удалить свойство объекта в JavaScript
- Конвертировать объект Map в массив в JavaScript
- Отсортировать массив объектов по одному из полей объекта в JavaScript
- throttle vs debounce
- Общий подход к определению типа переменной в JavaScript
- Заменить все вхождения подстроки в строке в JavaScript
- Дополнить строку символами до нужной длины в JavaScript
- Документирование JS-функций через JSDoc
- Получить текущее время в миллисекундах в JavaScript
- Проверить, что объект является промисом в JavaScript
- Сгруппировать элементы массива по ключу в JS
- Создать пустой объект без прототипа в JS
- Закодировать строку для передачи через адресную строку в JS
- Итерироваться по индексам и значениям массива (как enumerate в Python) в JS
Как перевернуть строку в javascript
Задачку сделать обратный ход строки на JavaScript очень часто задают на технических собеседованиях. Вас могут попросить написать код для переворачивания строки разными методами, например, без использования встроенных методов или с помощью рекурсии.
Потенциально существуют десятки различных способов реализовать алгоритм. В этой статье будут приведены три интересных способа решения задачи переворачивания строки на JavaScript, которые предложила в своем блоге программист Соня Мойссет.
Итак, задача
Написать алгоритм на JavaScript, который перевернет строку «hello».
Решения
1. Обращаем строку с помощью встроенных функций в JS
В алгоритме мы будем использовать три метода: метод String.prototype.split(), метод Array.prototype.reverse() и метод Array.prototype.join().
- Метод split() разбивает объект string на массив строк путём разделения строки указанной подстрокой.
- Метод reverse() на месте обращает порядок следования элементов массива. Первый элемент массива становится последним, а последний — первым.
- Метод join() объединяет все элементы массива в строку.
Шаг 1. Используем split() метод, чтобы вернуть новый массив.
Шаг 2. Используем reverse() метод, чтобы перевернуть созданный массив.
Шаг 3. Используем join() метод, чтобы соединить все элементы массива в строку.
Шаг 4. Возвращаем перевернутую строку.
function reverseString(str) < var splitString = str.split(""); // var splitString = "hello".split(""); // ["h", "e", "l", "l", "o"] var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse(); // ["o", "l", "l", "e", "h"] var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join(""); // "olleh" return joinArray; // "olleh" >reverseString("hello");
Три метода вместе:
function reverseString(str) < return str.split("").reverse().join(""); >reverseString("hello");
2. Переворачиваем строку с помощью цикла
Шаг 1. Создаем пустую строку, в которой будет размещаться новая строка.
Шаг 2. Создаем цикл FOR.
Шаг 3. Возвращаем перевернутую строку.
function reverseString(str) < var newString = ""; /* Стартовой точкой для цикла будет (str.length - 1), что соответствует последнему символу строки — "o" До тех пор, пока i больше или равно 0, цикл будет работать Мы уменьшаем i после каждой итерации */ for (var i = str.length - 1; i >= 0; i--) < newString += str[i]; // или newString = newString + str[i]; >/* Длина нашей строки «hello» равна пяти Для каждой итерации: i = str.length – 1 и newString = newString + str[i] 1-я: i = 5 - 1 = 4, newString = "" + "o" = "o" 2-я: i = 4 - 1 = 3, newString = "o" + "l" = "ol" 3-я: i = 3 - 1 = 2, newString = "ol" + "l" = "oll" 4-я: i = 2 - 1 = 1, newString = "oll" + "e" = "olle" 5-я: i = 1 - 1 = 0, newString = "olle" + "h" = "olleh" Конец цикла*/ return newString; // "olleh" > reverseString('hello');
3. Переворачиваем строку с помощью рекурсии
Для этого решения мы будем использовать два метода: метод String.prototype.substr() и метод String.prototype.charAt().
Метод substr() возвращает указанное количество символов из строки, начиная с указанной позиции.
"hello".substr(1); // "ello"
Метод charAt() возвращает указанный символ из строки.
"hello".charAt(0); // «h"
Глубина рекурсии равна длине строки. Этот способ решения будет не самым удобным, если строка будет очень длинной.
function reverseString(str) < if (str === "") // Завершение рекурсии return ""; else return reverseString(str.substr(1)) + str.charAt(0); /* Первая часть метода рекурсии. Вы должны помнить, что у вас не будет одного вызова функции, у вас будет несколько вложен ных вызовов. Each call: str === "?" reverseString(str.subst(1)) + str.charAt(0) 1-й вызов – reverseString("Hello») вернет reverseString("ello») + "h" 2-й вызов – reverseString("ello") вернет reverseString("llo") + "e" 3-й вызов – reverseString("llo") вернет reverseString("lo") + "l" 4-й вызов – reverseString("lo") вернет reverseString("o") + "l" 5-й вызов – reverseString("o") вернет reverseString("") + "o" Вторая часть метода рекурсии. Метод попадает в условие if и наиболее вложенный вызов немедленно возвращается. 5-й вызов вернет reverseString("") + "o" = "o" 4-й вызов вернет reverseString("o") + "l" = "o" + "l" 3-й вызов вернет reverseString("lo") + "l" = "o" + "l" + "l" 2-й вызов вернет reverserString("llo") + "e" = "o" + "l" + "l" + "e" 1-й вызов вернет reverserString("ello") + "h" = "o" + "l" + "l" + "e" + "h" */ >reverseString("hello");
Заключение
Практиковать написание алгоритмов на языках программирования — полезное занятие для развития логики и отличная практика кодирования. Задачу обратной строки можно решить несколькими способами: пойти по короткому пути или воспользоваться более сложными методами. Надеемся, что статья была вам полезна!
Перевернуть строку в JavaScript
В этом посте мы обсудим, как перевернуть строку в JavaScript.
Поскольку строки в JavaScript неизменяемы, на месте реверс строки невозможен. Есть несколько способов создать обратную копию строки с помощью JavaScript.
1. Использование Array.prototype.reverse() функция
Идея состоит в том, чтобы сначала преобразовать строку в массив символов, а затем вызвать Array.prototype.reverse() метод для реверсирования массива на месте. Наконец, соедините массив обратно в строку с помощью Array.prototype.join() метод.
Чтобы преобразовать строку в массив символов, вы можете использовать любой из следующих методов.
