Преобразование тире и/или подчеркивания слов с разделителями в верблюжий регистр

Мы напишем функцию 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: