for循环内部If语句的JavaScript正确语法
JavaScript Proper Syntax for If Statement Inside For Loop
我尝试将字符串的第一个字母大写,即"hello-world"参数应返回"hello-world"。我一直得到一个空白字符串的返回,我想if语句有一些基本的语法错误,我无法理解。代码:
function LetterCapitalize(str) {
var output = " "
for(var i=0; i < str.length; i++);
if(str.charAt(i - 1) == " ") {
str.charAt(i).toUpperCase;
output += str.charAt(i);
} else {
output += str.charAt(i);
}
return output
}
LetterCapitalize("hello world")
试试这个:
function LetterCapitalize(str) {
var output = ""+str.charAt(0).toUpperCase();
for(var i=1; i < str.length; i++){
if(str.charAt(i - 1) == " ") {
output += str.charAt(i).toUpperCase();
} else {
output += str.charAt(i);
}
}
return output;
}
console.log(LetterCapitalize("hello world"))
解释:
- 第一个字符已转换为大写(前面没有空格)
- 当字符前面有空格时,它将转换为大写。除此之外,它保持不变
您的主要问题似乎是第4行的for循环缺少一个开括号。
工作代码:
function letterCapitalize(string) {
var output = " ";
var newWord = true;
for(var i = 0; i < string.length; i ++){
if(newWord){
newWord = false;
output += string[i].toUpperCase();
} else output += string[i];
if(string[i] === " ")newWord = true;
}
return output;
}
console.log(letterCapitalize("hello world!"));
其他人已经提供了正确的解决方案,但这里有几点很重要:
-
确保正确缩进代码,这样可以更容易地阅读和调试代码。
-
您需要使用括号调用toUpperCase函数,也称为string.charAt(i).toUpperCase()
-
toUpperCase方法不会修改字符串本身,因此当您调用output+=str.charAt(i)时,您添加的是原始的小写字母,而不是大写字母。你可以看到其他解决方案有这样一行:output+=str.charAt(i).toUpperCase()
我一直得到一个空白字符串的返回,我想if语句有一些基本的语法错误,我搞不清楚?
不是使用if语句,而是使用for循环本身:
for(var i=0; i < str.length; i++);
// ^
这个分号意味着循环体中只有一个空语句,if语句被放置在循环的之后(您的缩进实际上与此匹配)。
使用这个(还修复了一些其他问题,比如对toUpperCase()
的调用和字符串开头):
function letterCapitalize(str) {
var output = "";
for (var i=0; i<str.length; i++)
if (i == 0 || str.charAt(i-1) == " ")
output += str.charAt(i).toUpperCase();
else
output += str.charAt(i);
return output;
}
letterCapitalize("hello world"); // "Hello World"
function LetterCapitalize(str) {
var output = "";
for (var i = 0; i < str.length; i++) {
if (i === 0) {
output += str.charAt(i).toUpperCase();
} else {
output += str.charAt(i);
}
}
return output;
};
console.log(LetterCapitalize("hello world"))
相关文章:
- Javascript语法向设置发出sessionStorage值
- 函数的Javascript语法
- 如何定义const函数javascript(语法糖)
- Onclick不会启动..可能存在javascript语法问题
- 用jquery替换javascript语法
- 在Javascript语法中:和::和:::有什么区别
- 如何以编程方式查找javascript语法错误的位置
- 这个javascript语法有什么问题
- Chrome 中的 JSX/JavaScript 语法
- Javascript语法 - 我做错了什么
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 这是什么JavaScript语法
- 带有函数的 JavaScript 语法
- 剃刀中的javascript语法错误
- 解析云代码geoPoint查询Javascript语法
- 在Notepad++中更好地突出显示Javascript语法
- 通用Javascript语法查询
- Joomla2.5框架似乎干扰了javascript语法
- 点击切换Divs/JavaScript语法
- 用于将变量传递给函数的javascript语法