Как использовать первую букву каждого слова в массиве, используя Array.map () с функцией стрелки? - PullRequest
0 голосов
/ 23 декабря 2018

Как сделать заглавной первую букву каждого слова в массиве, используя Array.map () с функцией стрелки?

Что я пробовал до сих пор:

const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
days.map(day => day.charAt(0).toUpperCase() + day.substr(1));
console.log(day);

Ответы [ 3 ]

0 голосов
/ 23 декабря 2018

Метод map() не изменяет значения в текущем массиве days, но создает новый массив с результатами вызова предоставленной функции для каждого элемента в вызывающем массиве.

Другими словамиметод map() не вносит никаких изменений в массив, который вы отображаете, но создает новый массив с внесенными изменениями.

Итак, чтобы получить доступ к новому массиву, который вы получили отmap(), вам нужно присвоить сопоставленный массив новой переменной, скажем, newDays следующим образом:

const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
    
const newDays = days.map(day => day.charAt(0).toUpperCase() + day.substr(1).toLowerCase());
    
console.log(newDays);
0 голосов
/ 23 декабря 2018

Ваш код работает нормально.У вас есть только две проблемы:

1) map возвращает новый массив, он не меняет массив

2) вы делаете console.log(day)

const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
console.log(days.map(day => day.charAt(0).toUpperCase() + day.substr(1)));
0 голосов
/ 23 декабря 2018

Вы можете просто использовать map :

const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
const capitalDays = days.map( day => day.charAt(0).toUpperCase() + day. substr(1));

Или использовать метод forEach

days.forEach((day, index) => {
   days[index] = day.charAt(0).toUpperCase() + day.substr(1).toLowerCase();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...