toUpperCase不工作

时间:2018-05-06 18:28:21

标签: javascript loops

我创建了这段代码,其中大部分代码都是使用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)
};

4 个答案:

答案 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();

<强>演示

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:0)

设置新值arrayWord[i+1]=arrayWord[i+1].toUpperCase();

答案 3 :(得分:0)

此函数使单词的第一个字母为大写:

&#13;
&#13;
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;
&#13;
&#13;