如何将一个String和多个String值进行比较思路分析


Posted in Javascript onApril 22, 2013

开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,比如:

if (string === 'banana' || string === 'pineapple') { 
fruitColor = 'yellow'; 
}

这样能够很好的完成需求,但总觉得有点笨,并且对扩展不友好,当我们的水果种类变多时:
if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') { 
fruitColor = 'yellow'; 
}

上面的代码看起来就不那么好看了,让我们看看有什么其他方式能够处理这种需求。
Switch
switch(string) { 
case 'banana': 
case 'pineapple': 
case 'mongo': 
case 'lemon': 
fruitColor = 'yellow'; 
}

这看起来不错,但是总是要多打些字,对于不喜欢多打字的人来说不是个好方法。
Array
if (['banana', 'pineapple', 'mongo', 'lemon'].indexOf(string) >= 0) { 
fruitColor = 'yellow'; 
}

这下好多了,但还有个问题,IE9以下的IE浏览器并不支持indexOf方法,如果你要在IE<=8的环境中使用Array方式比较多个string值,要么自己写一个indexOf方法,要么就得引入一些库来做浏览器兼容。
jQuery
jQuery提供了一个inArray方法
if ($.inArray(['banana', 'pineapple', 'mongo', 'lemon'], string) >= 0) { 
fruitColor = 'yellow'; 
}

Underscore
Underscore提供了一个contains方法
if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) { 
fruitColor = 'yellow'; 
}

正则表达式
当然,我们还有终极武器——正则表达式
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) { 
fruitColor = 'yellow'; 
}
Javascript 相关文章推荐
摘自百度的图片轮换效果代码
Nov 19 Javascript
JS中处理与当前时间间隔的函数代码
May 23 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
canvas实现动态小球重叠效果
Feb 06 Javascript
简述vue中的config配置
Jan 23 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
微信小程序全局变量功能与用法详解
Jan 22 Javascript
详解Vuex下Store的模块化拆分实践
Jul 31 Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
Apr 22 #Javascript
『jQuery』名称冲突使用noConflict方法解决
Apr 22 #Javascript
『jQuery』.html(),.text()和.val()的概述及使用
Apr 22 #Javascript
『jQuery』取指定url格式及分割函数应用
Apr 22 #Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 #Javascript
文字不间断滚动(上下左右)实例代码
Apr 21 #Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 #Javascript
You might like
php microtime获取浮点的时间戳
2010/02/21 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
php命令行模式代码实例详解
2021/02/26 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
模仿jQuery each函数的链式调用
2009/07/22 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
javascript表单验证大全
2015/08/12 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
实习求职信
2013/12/01 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书