switch語句,因爲你的代碼只有當-別人的:-)
沒有,真的。最好的事情是,如果你想找到一個簡單的算法來創建從任何給定名稱的電子郵件地址,像
function mail(name) {
return name.toLowerCase() + "@gmail.com";
}
var email = mail("Bob") // example usage
如果他們有所不同了,你可以使用一個對象作爲鍵 - 值映射:
var mails = {
"Steve": "[email protected]",
"Bob": "[email protected]",
...
}
var email = mails[name];
您還可以結合這些,如果你要確定你需要使用的算法:
var map = [{
algorithm: function(name) { return name+"@something"; },
names: ["Steve", "Bob", ...]
},{
algorithm: function(name) { return "[email protected]"+name+".org"; },
names: ["Mark", ...]
}];
for (var i=0; i<map.length; i++)
if (map[i].names.indexOf(name) > -1) {
var email = map[i].algorithm(name);
break;
}
或當它是一個有點簡單:
var domains = {
"gmail.com": ["Steve", "Bob", ...],
"free.xxx": ["Mark", ...],
...
};
for (var domain in domains)
if (domains[domain].indexOf(name) > -1)
var email = name.toLowerCase()+"@"+domain;
break;
}
只是儘量減少數據量傳送到客戶端,就像你可以。
也許是某種類型的數據庫? – vcsjones 2012-04-05 13:01:12
一百萬個開關語句...... – 2012-04-05 13:01:16
根據你提供的有限例子,'email'似乎只是帶'@ gmail.com'的名字的小寫版本,附加到最後。如果是這樣的話,你不需要任何形式的控制結構。 – 2012-04-05 13:03:14