我遇到了一个挑战,每个单词的开头都要大写

Stuck with a challenge that has me capitalizing the beginning of each word

本文关键字:开头 单词 挑战 遇到 一个      更新时间:2023-09-26

基本上,挑战是要有一个算法,它接受一个字符串,并返回每个单词的开头大写。很简单,但是在找到循环中的空格后,我被如何大写字母所困扰(也许有更好的方法)。

下面是我的代码:
 var capitalize = function(string){
var split = string.split(" ");
var collection = [];
var store = [];
for(var i = 0; i < split.length; i++){
  if(split[i]){
      if(split[i] === " "){
        var init = split[i+1].toUpperCase();
        store.push(init);
        collection.push(split[i]);
      } else{
        collection.push(split[i]);
      }
  }
}
var temp = collection.join(" ");
var final = temp.charAt(0).toUpperCase() + temp.slice(1);
return final;
}

显然,在我的for循环中,它不允许我改变我正在迭代的数组。然后我尝试了while循环,我尝试使用数组。地图和它仍然不能工作。我只是不明白如何在找到空格(")后将单词大写。

不能按" "分割字符串并使每个集合条目的第一个字母大写吗?

看一下他们是怎么把第一个字母大写的

明明可以用CSS做,为什么还要用JS呢

p.capitalize {
    text-transform: capitalize;
}
<p class='capitalize'>
  hello how are you?
</p>

jsfiddle

不需要那么多变量

:

function (str){ return str.replace(str.charAt(0), str.charAt(0).toUpperCase()) }