您好,欢迎访问一九零五行业门户网

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

开发中我们经常需要将一个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方法,如果你要在iejquery
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';
}
其它类似信息

推荐信息