通过大写每个单词的每个首字母来返回字符串,并以小写

时间:2018-01-21 22:47:39

标签: javascript string

我将字符串拆分为''并将所有单词存储在strSplit中。使用FORLOOP将每个单词的首字母大写以大写并存储在变量firstLetter中。在变量restLetter中存储了单词的其余部分。然后使用+添加firstLetter和restLetter并将此结果存储在newLetter中。现在我想使用join来取消每个单词的“”形式,使它成为一个字符串,每个单词中的每个首字母大写。但是,如果我在newLetter上应用加入,它就无法正常工作。

    function titleCase(str) {
     var strSplit = (str.split(' '));
     var newLetter = [];
     var returnString;
     var firstLetter;
     var restLetter;
       for(i=0; i <=(strSplit.length-1); i++){
        firstLetter = strSplit[i].charAt(0).toUpperCase();
        for(i=0; i <=(strSplit.length-1); i++){
        firstLetter = strSplit[i].charAt(0).toUpperCase();    
        restLetter = strSplit[i].slice(1, str.Split);    
        newLetter = firstLetter + restLetter;
        newLetter.join(" and ");

      }  
     return newLetter;
   }
   }

   titleCase("I'm a little tea pot");

2 个答案:

答案 0 :(得分:2)

您可以轻松地执行此操作:

function titleCase(str) {
  return str.split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
    .join(' ')

}

console.log(titleCase("I'm a little tea pot"));

这里我们split按空格,然后我们通过使用map使每个单词以大写开头,然后将第一个字符连接到大写,将其余部分连接到小写,然后join单词array with space。

答案 1 :(得分:0)

我自己用同样的方法找到了解决方案我开始!!这是:

   function titleCase(str) {
    var strSplit = (str.split(' '));
    var newLetter = [];   
    var firstLetter;
    var restLetter;
     for(i=0; i <strSplit.length; i++){
      firstLetter = strSplit[i].charAt(0).toUpperCase();        
      restLetter = strSplit[i].slice(1, str.Split).toLowerCase();    
      newLetter.push(firstLetter + restLetter);           
     }  
    return newLetter.join(" ");
  }
  titleCase("I'm a little tea pot");