关于javascript:使用每个单词的首字母大写

Capitalize the first letter of each word using

这学期我要上一节关于javascript的课,本周的练习之一是取一系列单词,并将每个单词的第一个字母大写。我用.map()做的,代码在这里:

1
2
3
4
5
6
let t1 ="hello how are you doing".split("");

let t2 = t1.map(function(word) {
  return word[0].toUpperCase() + word.slice(1);
});
console.log(t2.join(""));

而且效果非常好。然而,我想知道为什么当我尝试使用forEach()时,我不能使它工作。这是我的代码:

1
2
3
4
5
6
7
let t1 ="hello how are you doing".split("");


t1.forEach(function(word) {
  word[0] = word[0].toUpperCase();
})
console.log(t1.join(""));

我对forEach()的理解是,它循环遍历表中的每个元素,就像一个简单的for循环。那么,我的代码不应该取每个单词的第一个字母,并用同一个字母替换它吗?toUpperCase()应用于这个单词?

编辑:我已经知道如何将每个单词的第一个字母大写,我只是问了不同的方法


(P)首先,在JS中击球是不可改变的。(p)(P)字母名称(p)(P)So EDOCX1 plus 4 will not have any effect.(p)(P)Second,even if it was,you are updating a value of an argument variable and not value in array.(p)(P)字母名称(p)(P)As per discussion with@decaze,this point is not accurate.(p)布尔奇1(P)要取得这一结果,你将不得不在结转中超越价值。(p)(P)字母名称(p)Reference:

  • Javascript Strings是永恒的?Do I need a"string builder"in Javascript?


(P)字母名称(p)(P)The modification of EDOCX1 pental 0 doesn't take because strings are immutable.你不能改变一个单一的特征从一个脱衣。(p)布尔奇1


布尔奇1(P)因为你设定了一个新的标价,以EDOCX1为英文,所以它不带回首字母表。(p)(P)然而,如果标语3的音符不是原始的价值,那么最初的一个目标是突变的,见the demo below(p)(P)字母名称(p)