如何將一個String和多個String值進(jìn)行比較思路分析
更新時(shí)間:2013年04月22日 10:24:28 作者:
開發(fā)中我們經(jīng)常需要將一個String和多個String值進(jìn)行比較。直覺反應(yīng)是使用||符號連接多個===完成,感興趣的朋友可以了解下哈
開發(fā)中我們經(jīng)常需要將一個String和多個String值進(jìn)行比較。直覺反應(yīng)是使用||符號連接多個===完成,比如:
if (string === 'banana' || string === 'pineapple') {
fruitColor = 'yellow';
}
這樣能夠很好的完成需求,但總覺得有點(diǎn)笨,并且對擴(kuò)展不友好,當(dāng)我們的水果種類變多時(shí):
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的環(huán)境中使用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';
}
正則表達(dá)式
當(dāng)然,我們還有終極武器——正則表達(dá)式
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) {
fruitColor = 'yellow';
}
復(fù)制代碼 代碼如下:
if (string === 'banana' || string === 'pineapple') {
fruitColor = 'yellow';
}
這樣能夠很好的完成需求,但總覺得有點(diǎn)笨,并且對擴(kuò)展不友好,當(dāng)我們的水果種類變多時(shí):
復(fù)制代碼 代碼如下:
if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') {
fruitColor = 'yellow';
}
上面的代碼看起來就不那么好看了,讓我們看看有什么其他方式能夠處理這種需求。
Switch
復(fù)制代碼 代碼如下:
switch(string) {
case 'banana':
case 'pineapple':
case 'mongo':
case 'lemon':
fruitColor = 'yellow';
}
這看起來不錯,但是總是要多打些字,對于不喜歡多打字的人來說不是個好方法。
Array
復(fù)制代碼 代碼如下:
if (['banana', 'pineapple', 'mongo', 'lemon'].indexOf(string) >= 0) {
fruitColor = 'yellow';
}
這下好多了,但還有個問題,IE9以下的IE瀏覽器并不支持indexOf方法,如果你要在IE<=8的環(huán)境中使用Array方式比較多個string值,要么自己寫一個indexOf方法,要么就得引入一些庫來做瀏覽器兼容。
jQuery
jQuery提供了一個inArray方法
復(fù)制代碼 代碼如下:
if ($.inArray(['banana', 'pineapple', 'mongo', 'lemon'], string) >= 0) {
fruitColor = 'yellow';
}
Underscore
Underscore提供了一個contains方法
復(fù)制代碼 代碼如下:
if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) {
fruitColor = 'yellow';
}
正則表達(dá)式
當(dāng)然,我們還有終極武器——正則表達(dá)式
復(fù)制代碼 代碼如下:
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) {
fruitColor = 'yellow';
}
您可能感興趣的文章:
相關(guān)文章
JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01JS實(shí)現(xiàn)屏蔽網(wǎng)頁右鍵復(fù)制及ctrl+c復(fù)制的方法【2種方法】
這篇文章主要介紹了JS實(shí)現(xiàn)屏蔽網(wǎng)頁右鍵復(fù)制及ctrl+c復(fù)制的方法,結(jié)合實(shí)例形式分析了2種比較常用的屏蔽復(fù)制功能的技巧,需要的朋友可以參考下2016-09-09淺談javascript獲取元素transform參數(shù)
本文主要給大家簡單介紹了javascript獲取元素的transform參數(shù)的方法以及個人的理解,記錄下來分享給大家。2015-07-07頁面下沉抖動效果-網(wǎng)站HTTP連接沒有效果-PC上有效果
頁面下沉抖動效果實(shí)現(xiàn)代碼,代碼少,功能還可以2008-05-05JavaScript常見的跨標(biāo)簽頁通信方式總結(jié)
跨標(biāo)簽頁通信是指在瀏覽器中的不同標(biāo)簽頁之間進(jìn)行數(shù)據(jù)傳遞和通信的過程,這篇文章為大家整理了前端常見的跨標(biāo)簽頁通信方式,有需要的小伙伴可以了解下2023-10-10Javascript?、Vue禁止鼠標(biāo)右鍵點(diǎn)擊事件實(shí)例
這篇文章主要給大家介紹了關(guān)于Javascript?、Vue禁止鼠標(biāo)右鍵點(diǎn)擊事件的相關(guān)資料,禁止右鍵的原理是通過JavaScript阻止瀏覽器右鍵事件的默認(rèn)行為,從而達(dá)到禁止右鍵的效果,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11