Как сделать первые буквы заглавной, кроме первого слова

Исходный код

function camelCase(str) {
}
console.log(camelCase('some function name'))

Должно получится так someFunctionName


Ответы (3 шт):

Автор решения: Stanislav Volodarskiy

Регулярным выражением выделяем пробелы и символ сразу за ними:

  один или больше пробелов
  |
  ---
 /\s+(.)/g --- искать совпадение больше одного раза
     ---
     |
     группа в которую попадёт первый символ следующего слова

 'some function name' -> ' f', ' n'
      --       --

Пробелы выбрасываем, символу поднимаем регистр. Всё внутри вызова str.replace.

function camelCase(str) {
    return str.replace(/\s+(.)/g, m => m[1].toUpperCase());
}

console.log(camelCase('some function name'))
someFunctionName

P.S. Зачем вам function? Стрелочная функция компактнее и легче читается:

const camelCase = str => str.replace(/\s+(.)/g, m => m[1].toUpperCase());
→ Ссылка
Автор решения: De.Minov

Задание с CodeWars?

Я когда-то выполнял его и решение было таким:

function toCamelCase(str){
  if(typeof str === 'string' && str.length > 0) {
    str = str.split(/-|_|\s/);
    for(let i = 0; i < str.length; i++) {
      if(i != 0 && str[i][0] != str[i][0].toUpperCase())
        str[i] = str[i][0].toUpperCase() + str[i].slice(1);
    }
    return str.join('');
  } return '';
}

console.info(toCamelCase('some function name'));


Но больше всего мне понравился данный вариант:

function toCamelCase(str){
  return str.replace(/[-_\s](.)/g, (_, c) => c.toUpperCase());
}

console.info(toCamelCase('some function name'));

→ Ссылка
Автор решения: Алексей Шиманский

Зачем какие-то регулярки, какие-то реплэйсы, какие-то многоходовки с map, split, join и пр, если решается одним ходом цикла...

function camelCase(str) {
    let newStr = '';
    let prevChar = '';
    
    for (let char in str) {
        let currentChar = str[char];        
        newStr += prevChar === ' ' && currentChar !== ' '
                  ? currentChar.toUpperCase() 
                  : (currentChar === ' ' ? '' : currentChar);
        prevChar = str[char];
    }    
    
    return newStr;
}
console.log(camelCase('some function name'))

→ Ссылка