Массив из имён с заглавной буквы
Я попробовал написать так:
let names = ['KosTya', 'serGey', 'JoRDan', 'aleksandr'];
for (let name of names) {
name = name.charAt(0).toUpperCase() + name.substr(1);
console.log(name);
}
Это хоть и делает заглавной первую букву, однако потом буквы того же регистра, какого они были изначально. Мне же нужно, чтоб первая буква была заглавной, а остальные - нет.
Что я делаю не так?
Ответы (2 шт):
Автор решения: Great Tech
→ Ссылка
Вы забыли перевести все буквы в нижний регистр до того, как перевели первую в верхний.
Иначе говоря, таков алгоритм:
- есть слово, например:
пАШа - все буквы переводятся в нижний регистр, получаем
паша - Затем первая буква переводится в верхний регистр, остальные остаются как есть:
Паша
Надо также заметить, что в использовании charAt() уже нет особого смысла, и можно получить букву тем же способом, что в массиве (bracket notation)
let names = ['KosTya', 'serGey', 'JoRDan', 'aleksandr'];
for (let name of names) {
name = name.toLowerCase();
name = name[0].toUpperCase() + name.substr(1);
console.log(name);
}
Автор решения: Pavel Nazarian
→ Ссылка
let names = ['KosTya', 'serGey', 'JoRDan', 'aleksandr'];
let new_names = names.map(n => n[0].toUpperCase() + n.slice(1).toLowerCase())
console.log(new_names)