我認爲我寫的功能不好。我試圖簡化它,但保留了功能。試圖簡化這個javascript函數
function changeLetters(text) {
text = text.toLowerCase();
for (var i = 0; i < text.length; i++) {
var alphabet = advanced.checked ? alphabets[text[i]] || alphabets2[text[i]] : alphabets[text[i]];
if (alphabet) {
text = text.replace(text[i], alphabet);
}
}
return text;
}
一種方法是這樣的:
function changeLetters(text) {
var alphabets = advanced.checked ? alphabets || alphabets2 : alphabets;
return text.toLowerCase().replace(/[a-z]/g, function(letter) {
return alphabets[letter] || letter;
});
}
但隨着第二功能的問題是,它不檢查alphabet
和alphabet2
對象甚至advanced
檢查。我的意思是這條線什麼都不做advanced.checked ? alphabets || alphabets2 : alphabets
任何方法來簡化這個功能? 謝謝。
你能不能給我們一些投入和預期產出?什麼是「字母」,「字母2」和「高級」? –
這裏是 - http://jsbin.com/AREZoCig/6/ – user3208070