2016-07-29 3 views
-1

Имейте строку, например = 'fGvB233k;' Необходимый результат = 'FgVb233K;'Преобразование LoverCase в UpperCase и обращение (JavaScript)

<script> 
     var str ='fGvb233k;'; 
     var res; 
     var i; 
     for (i=0; i < str.length; i++) { 
      if (str[i] === str[i].toUpperCase()) 
      { 
      str[i] = str[i].toLowerCase() ; 
      console.log(str[i]); 
      } 
      else { 
      str[i] = str[i].toUpperCase() ;  

      } 
     }; 
     console.log(str); 
    </script> 

мой сценарий не работает .... результат сценария: G B ;

+0

Объявить 'уаг i' перед циклом –

+0

^^, который не имеет ничего общего с ним. Вы не можете мутировать строку, вам нужно сделать новую. – JordanHendrix

+0

добавлен, но все еще не работает ( –

ответ

3

Пример: JSBin Вы не можете мутировать строку, которую нужно создать новый:

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

Вы должны сохранить изменения в новую переменную, так как вы не можете мутировать строку

var input ='fGvb233k;'; 
    var output = ''; 

    for (var i=0; i < input.length; i++) { 
    if (input[i] === input[i].toUpperCase()) 
    { 
     output += input[i].toLowerCase() ; 

    } 
    else { 
     output += input[i].toUpperCase() ;  

    } 
    }; 
    console.log(output); 
+0

Почему голос? Это почти то же самое решение, которое было принято. – mcgraphix

0
var str ='Aren;'; 
var res = ""; 
for (let i=0; i < str.length; i++) { 
    if(str[i] === str[i].toUpperCase()) 
    { 
     res += str[i].toLowerCase(); 
    } 
    else { 
     res += str[i].toUpperCase(); 
    } 
} 
// see the result's output 
console.log(res); 

попробуйте этот;

причина, почему вы не можете видеть результат в том, что строки являются неизменяемыми массивы символов и вам нужно создать что-то вроде «струна строитель», а затем «построить» ваша строка

0

Из того, что я могу видеть, вас пытаются изменить все строчные строки в строчные строки и наоборот.

`<script> 
 
var str = 'fGvB233k', char='', result = ''; 
 
var i=0; 
 

 
while (i <= str.length) { 
 
    char = str.charAt(i); 
 

 
    if (!isNaN(char * 1)) { 
 
     result += char; 
 
    } 
 
    else { 
 
     if (char === char.toUpperCase()) { 
 
      result += char.toLowerCase(); 
 
     } 
 
     if (char === char.toLowerCase()) { 
 
      result += char.toUpperCase(); 
 
     } 
 
    } 
 
    i++; 
 
} 
 
console.log(result); 
 
</script>`
Обратите внимание, что я также сделал чек для чисел и

Смежные вопросы