3

JS初心者です。条件に基づいて文字列内の各要素を変更する基本的なプログラムを作成したいと考えています。文字が大文字の場合は小文字に置き換え、文字がすでに小文字の場合は大文字に置き換えます。なぜこれが機能しないのですか?ありがとう!

function SwapCase(str){

for (var i = 0; i < str.length; i++) {
    if (str.charAt(i)===str.charAt(i).toUpperCase()) {
       str.charAt(i).toLowerCase();
    } else{}
       str.charAt(i).toUpperCase();
    }

return str;

}

SwapCase("gEORGE");
4

3 に答える 3

6

現在、変更を書き戻していません。たとえば、次のようなことができます。

function SwapCase(str){

  var result = '';

  for (var i = 0; i < str.length; i++) {
    if (str.charAt(i)===str.charAt(i).toUpperCase()) {
       result += str.charAt(i).toLowerCase();
    } else{
       result += str.charAt(i).toUpperCase();
    }
  }

  return result;

}
于 2013-07-29T14:37:47.407 に答える
1

String Prototyping といくつかの簡略表記で同じことを行います。

String.prototype.swapCase = function(){
    var returnString = '';
    for (var i = 0; i < this.length; i++) {
        returnString += (this[i]===this[i].toUpperCase()) 
        ? this[i].toLowerCase()
        : this[i].toUpperCase();
    }
    return returnString;
};

console.log("Hallo".swapCase());
于 2013-07-29T14:51:53.687 に答える
1
function SwapCase(str){
var sReturn = "";
for (var i = 0; i < str.length; i++) {
    if (str.charAt(i)===str.charAt(i).toUpperCase()) {
       sReturn += str.charAt(i).toLowerCase();
    } else{
       sReturn += str.charAt(i).toUpperCase();
    }
}
return sReturn;

}
于 2013-07-29T14:40:24.037 に答える