栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

替代一百万个IF语句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

替代一百万个IF语句

一个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;    }

只是尝试尽可能减少要传递给客户端的数据量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/575071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号