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 wOrLD,但我得到输出为hw。
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
我认为你在滥用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更新,而不是一次只执行一个字符。