我正在尝试使用.toUpperCase()将数组中的字符转换为大写字母,但是它不起作用。我很确定自己的逻辑是正确的,所以不确定为什么它不起作用吗?



var test = "hello*3";


function LetterChanges(str) {
  //var testArr = str.split("");
  var tempArr = [];

  for (i = 0; i < str.length; i++) {
    if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) {

      tempArr.push(str.charCodeAt(i));
      tempArr[i] = tempArr[i] + 1;
      tempArr[i] = String.fromCharCode(tempArr[i]);

      if (tempArr[i] == "p" || tempArr[i] == "i") {
        tempArr[i].toUpperCase();
        console.log(tempArr[i]); //this will display "i" and "p".. why?
      }

    } else {
      tempArr[i] = str[i];
    }


  }
  console.log(tempArr); //this display [ 'i', 'f', 'm', 'm', 'p', '*', '3' ]

  str = tempArr.join("");
  return str;

}





因此,当我比较“ p”和“ i”时,它似乎能够检测到它,但是并没有将其转换为大写。

任何帮助,将不胜感激。谢谢!

最佳答案

console.log(tempArr [i]); //这将显示“ i”和“ p”。为什么?


因为您没有将转换后的值存储回变量

做了

tempArr[i] = tempArr[i].toUpperCase();

10-08 05:37