DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 如何將一個String和多個String值進行比較思路分析
如何將一個String和多個String值進行比較思路分析
編輯:關於JavaScript     
開發中我們經常需要將一個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';
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved