function titleCase(str) {
str = str.toLowerCase();
let mass = str.split(' ');
for(let i in mass)
{
mass[i][0] = mass[i][0].toUpperCase();
}
return mass;
}
titleCase("I'm a little tea pot");
const titleCase = str => str
.split(' ')
.map(n => n.charAt(0).toUpperCase() + n.slice(1).toLowerCase())
.join(' ');
const titleCase = str => str
.toLowerCase()
.replace(/(?<=^| +)./g, m => m.toUpperCase());
const titleCase = str =>
''.concat(...Array.from(str, (n, i) => {
return n[i && str[~-i] !== ' ' ? 'toLowerCase' : 'toUpperCase']();
}));
mass[i][0]
Другим способом (введённым в ECMAScript 5) является рассмотрение строки как массивоподобного объекта, в котором символы имеют соответствующие числовые индексы:return 'кот'[1]; // вернёт "о"
При доступе к символам посредством нотации с квадратными скобками, попытка удалить символ, или присвоить значение числовому свойству закончится неудачей, поскольку эти свойства являются незаписываемыми и ненастраиваемыми. Смотрите документацию по методу Object.defineProperty() для дополнительной информации.
const titleCase = str => str
.toLowerCase()
.split(' ')
.map(word => {
const chararr = word.split('');
chararr[0] = chararr[0].toUpperCase();
return chararr.join('');
})
.join(' ');
titleCase("I'm a little pea"); // I'm A Little Pea
titleCase("I love the sky and the trees"); // I Love The Sky And The Trees