JavaScript数组遍历替代switch case语句
作者:秋了秋 发表时间:2016年07月08日
在JavaScript中,switch case的作用想必都耳熟能详,然而当选项较多的时候,switch case要写出很长的代码,造成不美观和难以维护,比如:
switch(arrKey){ case ".html": resType="text/html"; break; case "": resType="text/html"; break; case ".js": resType="text/javascript"; break; case ".css": resType="text/css"; break; case ".gif": resType="image/gif"; break; case ".jpg": resType="image/jpeg"; break; case ".png": resType="image/png"; break; case ".ico": resType="image/icon"; break; }
如果再多一点,简直就无法阅读了,其它代码都被挤开了,然而我们可以使用数组之间的映射,这种一一对应的关系俗称字典翻译,可以完美替代switch case的写法。上面的代码可改写成如下:
var resType; var arrKey=[".html","",".js",".css",".gif",".jpg",".png",".ico"]; var arrValue=["text/html","text/html","text/javascript","text/css","image/gif","image/jpeg","image/png","image/icon"] arrKey.map(function(key,index){ if(extname==key){ resType=arrValue[index]; } })
或者:
var resType; var arrKey=[".html","",".js",".css",".gif",".jpg",".png",".ico"]; var arrValue=["text/html","text/html","text/javascript","text/css","image/gif","image/jpeg","image/png","image/icon"] arrKey.forEach(function(key,index){ if(extname==key){ resType=arrValue[index]; } })
这样明显把代码缩短了许多,而且,选项再怎么增加,代码也基本不会增加,唯有数组长度变化而已。
1
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/451.html