资讯专栏INFORMATION COLUMN

如何将一个String和多个String值进行比较

Betta / 1165人阅读

摘要:开发中我们经常需要将一个和多个值进行比较。这看起来不错,但是总是要多打些字,对于不喜欢多打字的人来说不是个好方法。提供了一个方法提供了一个方法正则表达式当然,我们还有终极武器正则表达式

开发中我们经常需要将一个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.ucloud.cn/yun/78557.html

相关文章

  • 《转载》经典的Java基础面试题集锦

    摘要:经典的基础面试题集锦经典的基础面试题集锦,欢迎收藏和分享。类变量或者说静态变量是通过这个关键字来声明的。非静态变量在每一个对象实例上都有单独的一份值。对象允许程序和数据进行封装,以减少潜在的干涉。 经典的Java基础面试题集锦 经典的Java基础面试题集锦,欢迎收藏和分享。 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示main方法不是pub...

    Winer 评论0 收藏0
  • Java 最常见 200+ 面试题全解析:面试必备(附答案)

    摘要:的简称,运行环境,为的运行提供了所需环境。分割字符串,返回一个分割后的字符串数组。线程安全是线程安全的,而是非线程安全的。迭代器取代了集合框架中的,迭代器允许调用者在迭代过程中移除元素。 本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Clou...

    hufeng 评论0 收藏0
  • 在下函数式编程有何贵干

    摘要:尾声除了以上特性,函数式编程中还有,等比较难以理解的概念,本文暂时不牵扯那么深,留待有兴趣的人自行调查。 本文简单介绍了一下函数式编程的各种基本特性,希望能够对于准备使用函数式编程的人起到一定入门作用。 showImg(/img/bVyUGu); 函数式编程,一个一直以来都酷,很酷,非常酷的名词。虽然诞生很早也炒了很多年但是一直都没有造成很大的水花,不过近几年来随着多核,分布式,大数据...

    April 评论0 收藏0
  • 如何编写 Typescript 声明文件

    摘要:函数重载这个概念是在一些强类型语言中才有的,依托于,这也算是一门强类型语言了,所以就会有需要用到这种声明的地方。 使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的。 TypeScript之所以叫Type,和它的强类型是分不开的,这也是区别于JavaScript最关键的一点,类型的声明可以直...

    姘搁『 评论0 收藏0
  • Java基础知识整理

    摘要:有两个重要的子类异常和错误,二者都是异常处理的重要子类,各自都包含大量子类。错误是程序无法处理的错误,表示运行应用程序中较严重问题。异常由虚拟机抛出。迭代器通常被称为轻量级对象,因为创建它的代价小。 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是...

    hankkin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<