如何将一个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 相关文章推荐
javascript对象的property和prototype是这样一种关系
Mar 24 Javascript
自动最大化窗口的Javascript代码
May 22 Javascript
jQuery选择器全集详解
Nov 24 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
BootStrap使用file-input插件上传图片的方法
Sep 05 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 Javascript
js数组方法reduce经典用法代码分享
Jan 07 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
原生JavaScript实现弹幕组件的示例代码
Oct 12 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
Jan 11 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
用jscript启动sqlserver
2007/06/21 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
jsonp原理及使用
2013/10/28 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
JSON的parse()方法介绍
2019/01/31 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python中装饰器高级用法详解
2017/12/25 Python
python语音识别实践之百度语音API
2018/08/30 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
pycharm运行scrapy过程图解
2019/11/22 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python批量修改交换机密码的示例
2020/09/22 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
《小猪家的桃花树》教学反思
2014/04/11 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Python加密技术之RSA加密解密的实现
2022/04/08 Python
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js