Как используя forEach изменить имена в массиве, чтоб начинались с большой буквы?
const names = ['vLadiMir', 'maRk', 'LoGAn', 'VicTOr', 'mAks', 'KaTe', 'alEx'];
names.forEach((item) => {
item = item[0].toUpperCase() + item.slice(1).toLowerCase();
});
console.log(names);
Нужно используя именно метод forEach изменить имена в массиве, чтоб начинались с большой буквы, а остальные были в нижнем регистре, но не пойму почему это не срабатывает?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Потому что метод forEach работает внутри как итератор. Изначально он своё локальное хранилище (в свойство класса) заносит массив, а потом производит итерирование по массиву из этого внутреннего свойства, по сути, копии массива. Поэтому основной не меняется.
Есть примерно аналогичный вопрос-ответ Не заполняется массив с помощью упрощённого цикла Java
только там Java, но суть та же
Если нужно через forEach:
const names = ['vLadiMir', 'maRk', 'LoGAn', 'VicTOr', 'mAks', 'KaTe', 'alEx'];
names.forEach((item, i) => {
names[i] = item[0].toUpperCase() + item.slice(1).toLowerCase();
});
console.log(names);