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

时间:2018-12-23 19:46:54

标签: javascript arrays mapping ecmascript-5

如何使用带有箭头功能的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 :(得分:1)

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 :(得分:0)

您可以简单地使用地图

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

答案 2 :(得分:0)

您的代码可以正常工作。您只有两个问题:

1)[2, 1, 3, 4]返回一个新数组,它不会更改该数组

2)您正在做map

console.log(day)