将大写字母转换为小写字母,并将小写字母转换为大写字母

时间:2018-07-18 01:23:49

标签: javascript

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。

2 个答案:

答案 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更新,而不是一次添加一个字符。