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
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 回答
1

用字符串原型和一些速记符号做同样的事情。

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 回答