关于javascript的交换案例

Aku*_*lko 8 javascript

我创建了一个更改大小写的脚本,但是在文本上使用它的结果是完全相同的文本,没有一个更改.有人可以解释一下吗?

var swapCase = function(letters){
    for(var i = 0; i<letters.length; i++){
        if(letters[i] === letters[i].toLowerCase()){
            letters[i] = letters[i].toUpperCase();
        }else {
            letters[i] = letters[i].toLowerCase();
        }
    }
   console.log(letters);
}

var text = 'So, today we have REALLY good day';

swapCase(text);
Run Code Online (Sandbox Code Playgroud)

Fab*_*tor 13

就像Ian所说,你需要建立一个新的字符串.

var swapCase = function(letters){
    var newLetters = "";
    for(var i = 0; i<letters.length; i++){
        if(letters[i] === letters[i].toLowerCase()){
            newLetters += letters[i].toUpperCase();
        }else {
            newLetters += letters[i].toLowerCase();
        }
    }
    console.log(newLetters);
    return newLetters;
}

var text = 'So, today we have REALLY good day';

var swappedText = swapCase(text); // "sO, TODAY WE HAVE really GOOD DAY"
Run Code Online (Sandbox Code Playgroud)


Pra*_*avi 8

您可以使用这个简单的解决方案。

var text = 'So, today we have REALLY good day';

var ans = text.split('').map(function(c){
  return c === c.toUpperCase()
  ? c.toLowerCase()
  : c.toUpperCase()
}).join('')

console.log(ans)
Run Code Online (Sandbox Code Playgroud)

使用 ES6

var text = 'So, today we have REALLY good day';

var ans = text.split('')
.map((c) =>
 c === c.toUpperCase() 
 ? c.toLowerCase()
 : c.toUpperCase()
).join('')

console.log(ans)
Run Code Online (Sandbox Code Playgroud)