将大写字母转换成小写和小写字母

问题描述 投票:0回答:2
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。

javascript
2个回答
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


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更新,而不是一次只执行一个字符。

© www.soinside.com 2019 - 2024. All rights reserved.