首頁 > web前端 > js教程 > 如何將一個String和多個String值進行比較思路分析_javascript技巧

如何將一個String和多個String值進行比較思路分析_javascript技巧

WBOY
發布: 2016-05-16 17:35:50
原創
1132 人瀏覽過

開發中我們經常需要將一個String和多個String值進行比較。直覺反應是使用||符號連接多個===完成,例如:

複製代碼 代碼如下:

if (string === 'banana' || string === 'pineapple') {
fruitColor = 'yellow';
}

這樣能夠非常能夠好的完成需求,但總覺得有點笨,並且對擴展不友好,當我們的水果種類變多時:
複製代碼 程式碼如下:

if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') {
fruitColor = 'yellow';
}

上面的程式碼看起來就不那麼好看了,讓我們看看有什麼其他方式能夠處理這種需求。
Switch
複製程式碼 程式碼如下:


程式碼如下:



程式碼如下:


程式碼如下:

碼如下: string) {
case 'banana': case 'pineapple': case 'mongo': case 'lemon': fruitColor = 'yellow'; } }
fruitColor = 'yellow';
}
}
}

這看起來不錯,但是總是要多打些字,對於不喜歡多打字的人來說不是個好方法。

Array

複製程式碼 程式碼如下:>
程式碼如下:
> ['banana', 'pineapple', 'mongo', 'lemon'].indexOf(string) >= 0) {
fruitColor = 'yellow';
}

這下好多了,但還有個問題,IE9以下的IE瀏覽器並不支援indexOf方法,如果你要在IEjQuery

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'; }
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板