在单词代码中我的大写字母有什么问题吗?

时间:2013-09-06 20:46:25

标签: javascript

function LetterCapitalize(str) { 
  return str.charAt(0).toUpperCase()+ str.slice(1);
  var spaceIndex=str.indexOf(' ');
  var first=str.substring(0,spaceIndex);
  var second=str.substring(spaceIndex+1,str.length)

  return LetterCapitalize(first)+" " + LetterCapitalize(second)
}
console.log(LetterCapitalize("hello world"))

不确定我做错了什么,但只有你好的H是大写的

5 个答案:

答案 0 :(得分:1)

当你的函数被调用时,它首先要做的是:

return str.charAt(0).toUpperCase()+ str.slice(1);

这将返回转换为大写的字符串的第一个字符,以及从索引1开始的字符串的其余部分(原样)。

由于函数从那里返回,函数中没有其他任何内容正在执行

如下:

function LetterCapitalize(str) { 
    var words = str.split(' '); // create an array of each word
    for(var i = 0; i < words.length; i++) // Loop through each word
        words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1); // capitalize first character of each word

    return words.join(' '); // join the array back into a string
}

此外,如果您只是为了显示目的而尝试执行此操作,则可以使用CSS:text-transform: capitalize;

答案 1 :(得分:1)

查看函数中的第一行代码?

退出函数(返回),并且不执行该函数中的其他任何代码。就javascript解释器而言,您的代码可能也是:

function LetterCapitalize(str) { 
    return str.charAt(0).toUpperCase()+ str.slice(1);
}

因此:Hello world

答案 2 :(得分:0)

此功能:

function LetterCapitalize(str) { 
    return str.charAt(0).toUpperCase()+ str.slice(1);
    var spaceIndex=str.indexOf(' ');
    var first=str.substring(0,spaceIndex);
    var second=str.substring(spaceIndex+1,str.length)

    return LetterCapitalize(first)+" " + LetterCapitalize(second)
}

在逻辑上等同于此函数:

function LetterCapitalize(str) { 
    return str.charAt(0).toUpperCase()+ str.slice(1);
}

只要您从函数return开始,该函数就不会发生任何其他事情。你已经返回了一个值,所以它已经完成了。在这种情况下,您返回的值是单个大写字符加上字符串的其余部分。您在字符串中查找第二个单词的进一步尝试永远不会被执行。

答案 3 :(得分:0)

如果你可以使用CSS很简单:

  <style type="text/css">
    h1.uppercase { text-transform: capitalize}
    </style>
    <h1 class="uppercase">Uppercase or lowercase?</h1>
   Output :** Uppercase Or Lowercase **

这就是你要找的东西吗?

答案 4 :(得分:0)

这是对Mike Christensen上面非常干净简洁的代码的一个简单调整,Mike Christensen写了这个答案(这在几乎所有方面与我的相同):

函数LetterCapitalize(str){

var words = str.split(' '); // create an array of each word
for(var i = 0; i < words.length; i++) // Loop through each word
    words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1); // capitalize first character of each word

return words.join(' '); // join the array back into a string

}

编辑:words [i] .charAt(0).toUpperCase()#=&gt;字[I] [0] .toUpperCase()

我只包含这个版本,以帮助其他人了解调用所需角色的不同方法,并可能有助于进一步了解代码中究竟发生了什么。我知道这对我很有帮助。