Преобразование тире и/или подчеркивания слов с разделителями в верблюжий регистр
Мы напишем функцию toCamelCase()
, которая будет принимать строку str
в качестве аргумента.
Для этой функции вам дается строка, и слова в строке разделяются дефисом —
или символом подчеркивания _
, или и тем, и другим. Цель функции — удалить все тире и/или символы подчеркивания, а первое слово, следующее за этим подчеркиванием или тире, должно быть заглавным. Возвращаемая строка должна напоминать входную строку, но в верблюжьем регистре.
Если ввод представляет собой пустую строку, функция вернет пустую строку.
Пример:
toCamelCase("the_stealth_warrior") // returns "theStealthWarrior" toCamelCase("A-B-C") // returns "ABC"
В первом примере вы видите, что все символы подчеркивания удалены, а каждое слово, следующее за символом подчеркивания, написано с заглавной буквы.
Вы видите то же самое во втором примере, но для тире.
Для начала создадим переменную с именем newStr
. Это переменная, которую функция вернет, так как она будет содержать преобразованную строку.
let newStr = "";
Далее мы создадим оператор if, который проверяет, есть ли у функции строковый ввод. Если это не так, мы вернем пустую строку или newStr
.
if (str) { // blah blah } else { return newStr }
Внутри первого блока if мы будем использовать метод split()
для разделения строки, где есть тире или подчеркивание. Полученный массив войдет в другую переменную с именем wordArr
.
if (str) { let wordArr = str.split(/[-_]/g); } else { return newStr }
Мы используем регулярное выражение /[-_]/g
в качестве аргумента метода split()
для захвата каждого тире и подчеркивания в строке.
Затем мы пройдемся по нашему массиву wordArr
и начнем с заглавных букв все слова в строке, кроме первого слова. Нас интересуют только слова, которые следуют за подчеркиванием и/или тире.
for (let i in wordArr) { if (i > 0) { newStr += wordArr[i].charAt(0).toUpperCase() + wordArr[i].slice(1); } else { newStr += wordArr[i] } }
Есть много способов сделать первую букву слова заглавной, но один из них включает использование метода charAt()
, который по индексу 0
выводит первый символ. Затем мы используем метод toUpperCase()
, чтобы сделать этот символ заглавным и объединить этот символ с оставшимися словами в строке, используя метод slice()
.
После того, как функция завершила цикл по массиву, мы возвращаем нашу переменную newStr
.
return newStr;
Вот остальная часть функции:
Если вы нашли этот алгоритм полезным, ознакомьтесь с другими моими статьями об алгоритмах JavaScript: