摘要:開發中我們經常需要將一個和多個值進行比較。這看起來不錯,但是總是要多打些字,對于不喜歡多打字的人來說不是個好方法。提供了一個方法提供了一個方法正則表達式當然,我們還有終極武器正則表達式
開發中我們經常需要將一個String和多個String值進行比較。直覺反應是使用||符號連接多個===完成,比如:
if (string === "banana" || string === "pineapple") { fruitColor = "yellow"; }
這樣能夠很好的完成需求,但總覺得有點笨,并且對擴展不友好,當我們的水果種類變多時:
if (string === "banana" || string === "pineapple" || string === "mongo" || string === "lemon") { fruitColor = "yellow"; }
上面的代碼看起來就不那么好看了,讓我們看看有什么其他方式能夠處理這種需求。
Switchswitch(string) { case "banana": case "pineapple": case "mongo": case "lemon": fruitColor = "yellow"; }
這看起來不錯,但是總是要多打些字,對于不喜歡多打字的人來說不是個好方法。
Arrayif (["banana", "pineapple", "mongo", "lemon"].indexOf(string) >= 0) { fruitColor = "yellow"; }
這下好多了,但還有個問題,IE9以下的IE瀏覽器并不支持indexOf方法,如果你要在IE<=8的環境中使用Array方式比較多個string值,要么自己寫一個indexOf方法,要么就得引入一些庫來做瀏覽器兼容。
jQueryjQuery提供了一個inArray方法
if ($.inArray(string, ["banana", "pineapple", "mongo", "lemon"]) >= 0) { fruitColor = "yellow"; }Underscore
Underscore提供了一個contains方法
if (_.contains(["banana", "pineapple", "mongo", "lemon"], string)) { fruitColor = "yellow"; }正則表達式
當然,我們還有終極武器——正則表達式
if (/^(banana|pineapple|mongo|lemon)$/.test(string)) { fruitColor = "yellow"; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78557.html
摘要:經典的基礎面試題集錦經典的基礎面試題集錦,歡迎收藏和分享。類變量或者說靜態變量是通過這個關鍵字來聲明的。非靜態變量在每一個對象實例上都有單獨的一份值。對象允許程序和數據進行封裝,以減少潛在的干涉。 經典的Java基礎面試題集錦 經典的Java基礎面試題集錦,歡迎收藏和分享。 問題:如果main方法被聲明為private會怎樣? 答案:能正常編譯,但運行的時候會提示main方法不是pub...
摘要:的簡稱,運行環境,為的運行提供了所需環境。分割字符串,返回一個分割后的字符串數組。線程安全是線程安全的,而是非線程安全的。迭代器取代了集合框架中的,迭代器允許調用者在迭代過程中移除元素。 本文分為十九個模塊,分別是:?Java 基礎、容器、多線程、反射、對象拷貝、Java Web 、異常、網絡、設計模式、Spring/Spring MVC、Spring Boot/Spring Clou...
摘要:尾聲除了以上特性,函數式編程中還有,等比較難以理解的概念,本文暫時不牽扯那么深,留待有興趣的人自行調查。 本文簡單介紹了一下函數式編程的各種基本特性,希望能夠對于準備使用函數式編程的人起到一定入門作用。 showImg(/img/bVyUGu); 函數式編程,一個一直以來都酷,很酷,非常酷的名詞。雖然誕生很早也炒了很多年但是一直都沒有造成很大的水花,不過近幾年來隨著多核,分布式,大數據...
摘要:函數重載這個概念是在一些強類型語言中才有的,依托于,這也算是一門強類型語言了,所以就會有需要用到這種聲明的地方。 使用TypeScript已經有了一段時間,這的確是一個好東西,雖說在使用的過程中也發現了一些bug,不過都是些小問題,所以整體體驗還是很不錯的。 TypeScript之所以叫Type,和它的強類型是分不開的,這也是區別于JavaScript最關鍵的一點,類型的聲明可以直...
摘要:有兩個重要的子類異常和錯誤,二者都是異常處理的重要子類,各自都包含大量子類。錯誤是程序無法處理的錯誤,表示運行應用程序中較嚴重問題。異常由虛擬機拋出。迭代器通常被稱為輕量級對象,因為創建它的代價小。 面向對象和面向過程的區別 面向過程 優點: 性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源;比如單片機、嵌入式開發、Linux/Unix等一般采用面向過程開發,性能是...
閱讀 1552·2021-11-17 09:33
閱讀 1100·2021-11-12 10:36
閱讀 2414·2019-08-30 15:54
閱讀 2441·2019-08-30 13:14
閱讀 2914·2019-08-26 14:05
閱讀 3289·2019-08-26 11:32
閱讀 3001·2019-08-26 10:09
閱讀 2995·2019-08-26 10:09