一个switch语句,因为您的代码仅是if-elses :-)
不,说实话。最好的办法是,如果您找到一种简单的算法来根据任何给定名称创建电子邮件地址,例如
function mail(name) { return name.toLowerCase() + "@gmail.com";}var email = mail("Bob") // example usage如果它们相差很大,则可以将一个对象用作键值映射:
var mails = { "Steve": "steve@gmail.com", "Bob": "bob1@freemail.org", ...}var email = mails[name];如果必须确定需要使用哪种算法,也可以将它们结合起来:
var map = [{ algorithm: function(name) { return name+"@something"; }, names: ["Steve", "Bob", ...]},{ algorithm: function(name) { return "info@"+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; }只是尝试尽可能减少要传递给客户端的数据量。



