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

Underscore
Underscore提供了一个contains方法
复制代码 代码如下:
if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) {
fruitColor = 'yellow';
}

正则表达式
当然,我们还有终极武器——正则表达式
复制代码 代码如下:
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) {
fruitColor = 'yellow';
}
风云阁资源网 Design By www.bgabc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
风云阁资源网 Design By www.bgabc.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。