如何将一个String和多个String值进行比较思路分析
2013-04-22 10:24
585 查看
开发中我们经常需要将一个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';
}
您可能感兴趣的文章:
相关文章推荐
- 如何将一个String和多个String值进行比较思路分析
- 如何将一个String和多个String值进行比较
- 如何对一个算法进行复杂度分析
- 如何分析一个完整的系统(系统源码分析思路一)
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- 如何对一个算法进行复杂度分析
- 如何在Java中进行字符串(String)比较
- 一个list,一个数组,如何在相互比较之后进行一些操作
- 如何对一个网站进行分析
- 如何使用JVisualVM进行性能分析
- asp两个数组如何进行比较,剔除相同,保留不同
- 三款工作流引擎比较:WWF、netBPM 和 ccflow 下面将对目前比较主流的三款工作流进行介绍和比较,然后通过三款流程引擎分别设计一个较典型的流程来给大家分别演示这三款创建流程的过程.这
- 弹框中如何设置当点击上一个盒子的时候会和下一个进行无缝连接
- 利用R语言如何进行文本比较算法——LD算法
- 如何判断是否需要对一个软件进行性能测试
- 如何使用工具进行线上 PHP 性能追踪及分析?
- 如何分析一个友链的SEO潜质?
- 如何采用简化方法进行需求分析
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- String[] a = new String[]{"1","2"},我如果想增加一个"3"到a中,如何增加?