[英]Why is my for loop using push inside a function not working?
我正在嘗試通過一個函數傳遞一個短語,以便每個首字母都大寫,其他所有字母都小寫。 我有以下功能:
function titleCase(str) {
var array = [];
for (var i = 0; i <= str.length; i++) {
str = str.split(' ');
str = str[i].toLowerCase();
str = str.charAt(0).toUpperCase() + str.substr(1, str.length);
array = array.push(str);
return array.push(str);
}
}
titleCase("SenTencE TesT");
如果沒有for循環,該函數將起作用,並將所有內容變為小寫,然后將每個單詞的首字母大寫。
[編輯]
有很多方法可以做到,但是嘗試一下...
function titleCase(string) {
var array = string.split(' ');
var newString = '';
for (var i = 0; i <= array.length-1; i++) {
array[i] = array[i].toLowerCase();
array[i] = array[i].charAt(0).toUpperCase() + array[i].substr(1, array[i].length);
newString += array[i] + ' ';
};
return newString.trim();
};
console.log( titleCase("SenTencE TesT") );
1)不要命名您的變量數組,即JavaScript保留字,您可以使用“ arr”。
2)在您的代碼中,您將句子拆分為單詞數組,但是您僅將toLowerCase應用於第一個單詞。
3)有一種更清潔的方法可以達到您想要的結果:
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}
console.log( capitalize("sentence TesT") );
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.