2016-03-10 28 views
0

我是一個完整的初學者,我試圖用循環來做到這一點,如果條件,但它從來沒有奏效,我懷疑問題是與我如果有條件。如何在不使用JavaScript中的正則表達式的情況下將大寫字母轉換爲小寫字母,反之亦然?

這裏是我的代碼,並提前感謝。

function alter(a){ 






     for (var i = 0; i<a.length; i++){ 



      if (a[i] === a[i].toUpperCase()){ a[i] = a[i].toLowerCase(); } 

      else if (a[i] === a[i].toLowerCase()){ a[i] = a[i].toUpperCase(); } 

     } 


     console.log(a); 



} 
+1

你想一個字符串大寫或小寫中的所有字符轉換? –

+1

字符串是不可變的。你不能那樣做。 – SLaks

+1

我明白了 - 如果它的上限要低一些,反之亦然。得到它了。 –

回答

1

var hello = "hElLO"; 
 
var newWord = []; 
 

 
for (i=0; i<hello.length; i++) { 
 
    if (hello[i] == hello[i].toLowerCase()) { 
 
     newWord[i] = hello[i].toUpperCase(); 
 
    } 
 
    else { 
 
    newWord[i] = hello[i].toLowerCase(); 
 
    } 
 
} 
 

 
alert(newWord.join(""));

+0

非常感謝你JoeL。我只是想知道爲什麼你會創建newWord作爲數組然後加入它,但不創建它作爲一個空字符串。做它也必須做的事實,字符串是不可變的? –

+1

@MohamedHegazy字符串是不可改變的,但bapibopi的工作方式也是如此。我只是選擇了一個數組,每個字符都是一個元素來顯示另一種方法,因爲在編碼中總是有多種實現目標的方式。 – JoeL

+0

是啊,我明白了,我實際上必須學習編程有無限的方式實現相同的目標的艱難方式。 –

2

正如@SLaks提到的,javascript中的字符串是不可變的,這意味着你實際上不能改變其中的內容。相反,你可以創建一個新的空字符串,並添加到

function alter(string) { 
    var newString = '' 
    for (var i = 0; i < string.length; i++) { 
    newString += string[i] === string[i].toUpperCase() ? string[i].toLowerCase() : string[i].toUpperCase() 
    } 
    return newString 
} 
+0

非常感謝先生,現在我知道了 –

相關問題