我创建了这段代码,其中大部分代码都是使用toUpperCase,它应该使单词的每个首字母大写。没有错误,所以我不确定为什么该方法当前不工作。为什么会出现这种情况。
let str ="insert string here"
String.prototype.toCase = function () {
let arrayWord = str.split("");
for (let i = 0; i<str.length; i++){
if (arrayWord[i]===" "){
arrayWord[i+1].toUpperCase();
}
else{
}
}
let result = arrayWord.join("");
return (result)
};
答案 0 :(得分:3)
toUpperCase返回修改后的字符串,它不会修改它所调用的字符串。
var a = "donald";
var b = a.toUpperCase();
console.log(a) // donald
console.log(b) // DONALD
在这里,我保持了您的代码结构,但它仍然存在一些问题。如果您以后想要输入一个考虑所有极端情况的解决方案。
var str = "donald fauntleroy duck"
var str_array = str.split("");
var ret_str = ""
for(var i=0; i<str_array.length; i++)
{
if(i > 0)
{//avoid checking out of scope
if(str_array[i-1] === " ")
{
ret_str += str_array[i].toUpperCase();
}
else
{
ret_str += str_array[i];
}
}
}
return(ret_str);
答案 1 :(得分:1)
您忘记分配String#toUpperCase的结果,因为它返回修改后的字符串而不是处理被调用的字符串。
... 返回 将转换为大写的调用字符串值...
添加如下任务:
arrayWord[i + 1] = arrayWord[i + 1].toUpperCase();
<强>演示强>
let str ="insert string here"
String.prototype.toCase = function () {
let arrayWord = str.split("");
for (let i = 0; i < str.length; i++){
if (arrayWord[i] === " "){
arrayWord[i + 1] = arrayWord[i + 1].toUpperCase();
}
else{
}
}
let result = arrayWord.join("");
return (result)
};
console.log(str.toCase());
&#13;
答案 2 :(得分:0)
设置新值arrayWord[i+1]=arrayWord[i+1].toUpperCase();
答案 3 :(得分:0)
此函数使单词的第一个字母为大写:
function uppercaseFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
var output = "";
let str ="insert string here";
str = str.split(' ').forEach(itm => output += uppercaseFirstLetter(itm) + ' ');
console.log(output);
&#13;