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

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

WBOY
WBOY原創
2016-05-16 17:35:501141瀏覽

開發中我們經常需要將一個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'; }
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn