zoukankan      html  css  js  c++  java
  • 如何将一个String和多个String值进行比较

    开发中我们经常需要将一个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';
    }
  • 相关阅读:
    【软件工程实践 · 团队项目】 第一次作业
    课下作业2
    实验三 敏捷开发与XP实践
    2017-2018-1 20155315 《信息安全系统设计基础》第11周学习总结
    2017-2018-1 20155315 《信息安全系统设计基础》实验四 外设驱动程序设计
    20155306 20155315 《信息安全技术》实验四、木马及远程控制技术
    2017-2018-1 20155315 《信息安全系统设计基础》第9周学习总结
    2017-2018-1 20155315 《信息安全系统设计基础》实验三 实时系统
    2017-2018-1 20155315 《信息安全系统设计基础》加分作业:实现mypwd
    2017-2018-1 20155315 《信息安全系统设计基础》第8周学习总结
  • 原文地址:https://www.cnblogs.com/betarabbit/p/3033246.html
Copyright © 2011-2022 走看看