摘要:开发中我们经常需要将一个和多个值进行比较。这看起来不错,但是总是要多打些字,对于不喜欢多打字的人来说不是个好方法。提供了一个方法提供了一个方法正则表达式当然,我们还有终极武器正则表达式
开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,比如:
if (string === "banana" || string === "pineapple") { fruitColor = "yellow"; }
这样能够很好的完成需求,但总觉得有点笨,并且对扩展不友好,当我们的水果种类变多时:
if (string === "banana" || string === "pineapple" || string === "mongo" || string === "lemon") { fruitColor = "yellow"; }
上面的代码看起来就不那么好看了,让我们看看有什么其他方式能够处理这种需求。
Switchswitch(string) { case "banana": case "pineapple": case "mongo": case "lemon": fruitColor = "yellow"; }
这看起来不错,但是总是要多打些字,对于不喜欢多打字的人来说不是个好方法。
Arrayif (["banana", "pineapple", "mongo", "lemon"].indexOf(string) >= 0) { fruitColor = "yellow"; }
这下好多了,但还有个问题,IE9以下的IE浏览器并不支持indexOf方法,如果你要在IE<=8的环境中使用Array方式比较多个string值,要么自己写一个indexOf方法,要么就得引入一些库来做浏览器兼容。
jQueryjQuery提供了一个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基础面试题集锦,欢迎收藏和分享。 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示main方法不是pub...
摘要:的简称,运行环境,为的运行提供了所需环境。分割字符串,返回一个分割后的字符串数组。线程安全是线程安全的,而是非线程安全的。迭代器取代了集合框架中的,迭代器允许调用者在迭代过程中移除元素。 本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Clou...
摘要:尾声除了以上特性,函数式编程中还有,等比较难以理解的概念,本文暂时不牵扯那么深,留待有兴趣的人自行调查。 本文简单介绍了一下函数式编程的各种基本特性,希望能够对于准备使用函数式编程的人起到一定入门作用。 showImg(/img/bVyUGu); 函数式编程,一个一直以来都酷,很酷,非常酷的名词。虽然诞生很早也炒了很多年但是一直都没有造成很大的水花,不过近几年来随着多核,分布式,大数据...
摘要:函数重载这个概念是在一些强类型语言中才有的,依托于,这也算是一门强类型语言了,所以就会有需要用到这种声明的地方。 使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的。 TypeScript之所以叫Type,和它的强类型是分不开的,这也是区别于JavaScript最关键的一点,类型的声明可以直...
摘要:有两个重要的子类异常和错误,二者都是异常处理的重要子类,各自都包含大量子类。错误是程序无法处理的错误,表示运行应用程序中较严重问题。异常由虚拟机抛出。迭代器通常被称为轻量级对象,因为创建它的代价小。 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是...
阅读 1552·2021-11-17 09:33
阅读 1100·2021-11-12 10:36
阅读 2414·2019-08-30 15:54
阅读 2441·2019-08-30 13:14
阅读 2914·2019-08-26 14:05
阅读 3289·2019-08-26 11:32
阅读 3001·2019-08-26 10:09
阅读 2995·2019-08-26 10:09