我正在尝试使用.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();