繁体   English   中英

如何使用带箭头函数的 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);

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

您可以简单地使用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();
});

你的代码工作正常。 你只有两个问题:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM