如何使用带有箭头函数的 Array.map() 将数组中每个单词的首字母大写?

How to capitalize the first letter of each word in an array using Array.map() with an arrow function?

如何使用带有箭头函数的 Array.map() 将数组中每个单词的首字母大写?

到目前为止我尝试过的:

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

您可以简单地使用 地图 :

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();
});

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);

您的代码运行良好。您只有两个问题:

1) map returns 一个新数组,它不会改变数组

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)));