标题案例JavaScript

时间:2018-04-21 01:19:59

标签: javascript arrays for-loop lowercase charat

我正在尝试创建一个函数,在该函数中,在toLowerCase()输入之后,将大写数组的每个元素中的第一个字母。

function title_case ( String ) {
    var result = "";
    var text = String.toLowerCase().split(" ");
    for (var i = 0; i < text.length; i++) {
      var c = text[i].charAt(0).toUpperCase();
      result = result + c;
    }
    return result;
  }

输入:

document.write( title_case( "a kitty PUrrs") );

当前代码的结果输出是AKP。我试图想办法用charAt(1)删除小写字符,然后如果可能的话输入join()。我是在正确的轨道上吗?我知道有更简单的方法,但我正在尝试沿着这些方向学习。

2 个答案:

答案 0 :(得分:3)

您可以在第一个字符后面创建字符串其余部分的子字符串,而不是删除第一个字符。即:

result = result + c + text[i].substring(1, text[i].length()-1) + " ";

text[i].substring(1, text[i].length()-1)获取单词中从第二个字符到单词结尾的部分(有点像&#34;删除&#34;第一个字符)。

并且您不需要join()字符串函数,只需要+进行连接。最后的" "用空格分隔单词。在函数结束时,您可以返回result.trim()以删除最后一个空格。

答案 1 :(得分:1)

使用以下功能将句子大写或将标题大写。

console.log(capitalizeFirstLetter("THIS IS A SENTENCE")); //converts a sentence to capitalise. 

console.log(titleCase("THIS IS A SENTENCE")); //converts a sentence to titlecase. 

function capitalizeFirstLetter(string) {
    return string[0].toUpperCase() + string.slice(1).toLowerCase();
}

function titleCase(string) {
    return string.split(" ").map(x => capitalizeFirstLetter(x)).join(" ");
}