簡體   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