2015-06-11 35 views
-2

代碼有效,但我需要一種優化的方式,在javscript中,我可以得到一些關於此的建議!在javascript中將特定數組值(元音)更改爲大寫

//capitalize vowels in a string 

(function (string) { 
    var str = string.split(""); 
    console.log(str); 
    var name = []; 
    for (var i = 0; i < str.length; i++) { 
     //console.log(str[i]); 
     if (str[i] == "a") { 
      str[i] = "A"; 
     } 
     if (str[i] == "e") { 
      str[i] = "E"; 
     } 
     if (str[i] == "i") { 
      str[i] = "I"; 
     } 
     if (str[i] == "o") { 
      str[i] = "O"; 
     } 
     if (str[i] == "u") { 
      str[i] = "U"; 
     } 
    } 
    console.log(str); 
    return str; })("Hello Jane") 
+2

我認爲這個問題應該去http://codereview.stackexchange.com/ –

回答

1

什麼

var result = (function(string) { 
 
    return string.replace(/[aeiou]/g, function(char) { 
 
    return char.toUpperCase(); 
 
    }); 
 
})("Hello Jane") 
 

 
console.log(result)


沒有匿名函數

var string = "Hello Jane"; 
var result = string.replace(/[aeiou]/g, function (char) { 
    return char.toUpperCase(); 
}); 

console.log(result) 

演示:Fiddle


不使用正則表達式

var map = { 
 
    a: 'A', 
 
    e: 'E', 
 
    i: 'I', 
 
    o: 'O', 
 
    u: 'U' 
 
} 
 
var string = "Hello Jane"; 
 
var result = string.split('').map(function(char, i) { 
 
    return map[char] || char; 
 
}).join(''); 
 

 
console.log(result)

+0

謝謝你,你覺得可以有任意其他方式也比使用正則表達式在Javascript – sg28

+0

@ user3442874看到更新 –

+0

,謝謝你。我想這樣的事情 – sg28