我一直试图绕过这个。我遇到了这个挑战,不明白发生了什么。最重要的是,在for循环中有一个X声明 - 所以你可以在for循环括号中声明两个变量?
var
之前没有x
- 这意味着它是一个全局变量是否正确?这就是我失去的地方:
str[i] = str[i][0].toUpperCase() + str[i].substr(1);
这是如何输出带有首字母大写字母的整个字符串 - 最后,str[i].substr(1)
应该是第二个字母,不是吗? JavaScript是零索引的
在这里挑战:https://www.w3resource.com/javascript-exercises/javascript-basic-exercise-50.php
function capital_letter(str)
{
str = str.split(" ");
for (var i = 0, x = str.length; i < x; i++) {
str[i] = str[i][0].toUpperCase() + str[i].substr(1);
}
return str.join(" ");
}
console.log(capital_letter("Write a JavaScript program to capitalize the first letter of each word of a given string."));
答案 0 :(得分:0)
代码的逐行分析:
str = str.split(“”); //此行在每个空格字符上拆分给定的字符串str并将其保存为数组格式
用于循环表达式分析:
var i = 0,x = str.length //变量'i'初始化为0,'x'初始化为字符串数组str的长度,即16
i&lt; X; i ++ // condition判断每次迭代的'i'是否小于'x'意味着循环将运行16次,因为'i'增加1
分析行 - str [i] = str [i] [0] .toUpperCase()+ str [i] .substr(1);
str [i] [0] .toUpperCase()//将大写作为每个str索引的第一个字母
str [i] .substr(1)//在每个str索引的第一个字母之后占用所有字母
最后,整个单词再次保存在相同的索引
return str.join(“”); //在将其加入大写句子
后返回then str数组