如何将一个String和多个String值进行比较思路分析
更新时间:2013年04月22日 10:24:28 作者:
开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,感兴趣的朋友可以了解下哈
开发中我们经常需要将一个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';
}
复制代码 代码如下:
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';
}
您可能感兴趣的文章:
相关文章
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
这篇文章主要介绍了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法,涉及javascript动态创建页面元素、事件监听、回调函数使用等相关操作技巧,需要的朋友可以参考下2018-09-09
document.compatMode的CSS1compat使用介绍
这篇文章主要介绍了document.compatMode的CSS1compat使用,需要的朋友可以参考下2014-04-04
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
这篇文章主要介绍了在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示),需要的朋友可以参考下2017-05-05
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页
这篇文章主要介绍了BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)的相关资料,需要的朋友可以参考下2016-12-12


最新评论