如何使用带有箭头功能的Array.map()将数组中每个单词的首字母大写?
到目前为止,我已经尝试过:
const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
days.map(day => day.charAt(0).toUpperCase() + day.substr(1));
console.log(day);
答案 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)