源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-10-08 11:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:如何将一个String和多个String值进行比较思路分析
开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,比如:
[u]复制代码[/u] 代码如下:
if (string === 'banana' || string === 'pineapple') { fruitColor = 'yellow'; }
这样能够很好的完成需求,但总觉得有点笨,并且对扩展不友好,当我们的水果种类变多时:
[u]复制代码[/u] 代码如下:
if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') { fruitColor = 'yellow'; }
上面的代码看起来就不那么好看了,让我们看看有什么其他方式能够处理这种需求。 [b]Switch[/b]
[u]复制代码[/u] 代码如下:
switch(string) { case 'banana': case 'pineapple': case 'mongo': case 'lemon': fruitColor = 'yellow'; }
这看起来不错,但是总是要多打些字,对于不喜欢多打字的人来说不是个好方法。 [b]Array[/b]
[u]复制代码[/u] 代码如下:
if (['banana', 'pineapple', 'mongo', 'lemon'].indexOf(string) >= 0) { fruitColor = 'yellow'; }
这下好多了,但还有个问题,IE9以下的IE浏览器并不支持indexOf方法,如果你要在IE<=8的环境中使用Array方式比较多个string值,要么自己写一个indexOf方法,要么就得引入一些库来做浏览器兼容。 [b]jQuery[/b] jQuery提供了一个inArray方法
[u]复制代码[/u] 代码如下:
if ($.inArray(['banana', 'pineapple', 'mongo', 'lemon'], string) >= 0) { fruitColor = 'yellow'; }
[b]Underscore[/b] Underscore提供了一个contains方法
[u]复制代码[/u] 代码如下:
if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) { fruitColor = 'yellow'; }
[b]正则表达式[/b] 当然,我们还有终极武器——正则表达式
[u]复制代码[/u] 代码如下:
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) { fruitColor = 'yellow'; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部