Я пытаюсь заменить первую букву каждого слова в строке на верхний регистр и заставить его работать, разделив строку, затем сопоставляя каждое слово следующим образом:
var S = 'hello world';
var x = S.toLowerCase().split(' ').map(word => word[0].toUpperCase() + word.substr(1)).join(' ');
console.log(x);
НО:
Если строка содержит более одного пробела, как показано ниже, я получаю сообщение об ошибке Cannot read property 'toUpperCase' of undefined
.
var S = 'hello world';
var x = S.toLowerCase().split(' ').map(word => word[0].toUpperCase() + word.substr(1)).join(' ');
console.log(x);
Я попытался добавить +
к .split ('') и .join (''), как рекомендовано в прошлых потоках stackoverflow, как показано ниже, но при этом вместо этого использовалась только первая буква первого слова:
var S = 'hello world';
var x = S.toLowerCase().split(' +').map(word => word[0].toUpperCase() + word.substr(1)).join(' +');
console.log(x); // returns 'Hello world'
Что было бы правильным для этого?