var str = "HellO WoRld"
var myArr = str.split(" ");
for(i=0;i<myArr.length;i++)
{
myArr2 =myArr[i].split("");
// console.log(myArr2);
for(j=0;j<myArr2.length;j++)
{
if(myArr2[j].charCodeAt(j) >= 65 && myArr2[j].charCodeAt(j) <= 90 )
{
document.write(myArr2[j].toLowerCase());
}
else if(myArr2[j].charCodeAt(j) >= 97 && myArr2[j].charCodeAt(j) <= 122 )
{
document.write(myArr2[j].toUpperCase());
}
}
}
因此,我一直在尝试使用charCodeAt()将单词中的字母从大写更改为小写,反之亦然,你们可以告诉我我的代码有什么问题还是建议替代代码,但只能使用charCodeAt()。 在我的代码中,输入为HellO WoRld,输出应为hello世界,但我将其输出为hw。
答案 0 :(得分:0)
var str = "HellO WoRld"
var myArr = str.split("");
for(i=0;i<myArr.length;i++)
{
myArr2 =myArr[i].split("");
// console.log(myArr2);
for(j=0;j<myArr2.length;j++)
{
if(myArr2[j].charCodeAt(j) >= 65 && myArr2[j].charCodeAt(j) <= 90 )
{
console.log(myArr2[j].toLowerCase());
}
else if(myArr2[j].charCodeAt(j) >= 97 && myArr2[j].charCodeAt(j) <= 122 )
{
console.log(myArr2[j].toUpperCase());
}
}
}
您的问题出在str.split(" ")
上,请删除多余的空间并进行无空间分割应该可以正常工作var myArr = str.split("")
@ line2
答案 1 :(得分:0)
我认为您在滥用charCodeAt
函数。此功能已经将字符位置作为输入,但是您要两次指定该信息,例如
myArr2[j].charCodeAt(j)
相反,请尝试以下版本:
var str = "HellO WoRld"
var myArr = str.split(" ");
var out = "";
for (i=0; i < myArr.length; i++) {
var word = myArr[i];
var output = "";
console.log(word);
for (j=0; j < word.length; j++) {
if (word.charCodeAt(j) >= 65 && word.charCodeAt(j) <= 90) {
output += String.fromCharCode(word.charCodeAt(j) + 32);
}
else if (word.charCodeAt(j) >= 97 && word.charCodeAt(j) <= 122) {
output += String.fromCharCode(word.charCodeAt(j) - 32);
}
}
if (out !== "") {
out += " ";
}
out += output;
console.log(output);
}
console.log("final output: " + out);
如果您需要将此输出写入DOM,我建议您先在JavaScript代码中构建字符串,然后再进行一次DOM更新,而不是一次添加一个字符。