[英]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!"));
其他人已經提供了正確的解決方案,但是這里有幾點要點:
確保您正確縮進代碼,使其更易於閱讀和調試。
您需要使用括號(也稱為string.charAt(i).toUpperCase())調用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"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.