博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何将一个String和多个String值进行比较
阅读量:6365 次
发布时间:2019-06-23

本文共 1152 字,大约阅读时间需要 3 分钟。

开发中我们经常需要将一个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(string, ['banana', 'pineapple', 'mongo', 'lemon']) >= 0) {    fruitColor = 'yellow';}

Underscore

Underscore提供了一个contains方法

if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) {    fruitColor = 'yellow';}

正则表达式

当然,我们还有终极武器——正则表达式

if (/^(banana|pineapple|mongo|lemon)$/.test(string)) {    fruitColor = 'yellow';}

转载于:https://www.cnblogs.com/betarabbit/archive/2013/04/20/3033246.html

你可能感兴趣的文章
Edge 浏览器奇葩 bug:“123456”打印成“114447”
查看>>
Sirius —— 开源版的 Siri ,由 Google 支持
查看>>
《OpenGL ES应用开发实践指南:Android卷》—— 2.7 小结
查看>>
《Windows Server 2012活动目录管理实践》——第 2 章 部署第一台域控制器2.1 案例任务...
查看>>
Java Date Time 教程-时间测量
查看>>
Selector.wakeup实现注记
查看>>
《Java EE 7精粹》—— 第1章 Java EE 1.1 简介
查看>>
《Exchange Server 2013 SP1管理实践》——导读
查看>>
syslog:类Unix系统常用的log服务
查看>>
使用Annotation设计持久层
查看>>
深入实践Spring Boot2.4.1 Neo4j依赖配置
查看>>
Zen Cart 如何添加地址栏上的小图标
查看>>
SecureCrt 连接Redhat linux
查看>>
[NHibernate]持久化类(Persistent Classes)
查看>>
安装oracle数据库提示“程序异常终止”解决方案
查看>>
如何在Hive中使用Json格式数据
查看>>
iOS开发网络篇—简单介绍ASI框架的使用
查看>>
linux如何恢复被删除的热文件
查看>>
Eclipse(MyEclipse) 自动补全
查看>>
Struts2中dispatcher与redirect的区别
查看>>