如何讓js中的if判斷如絲般順滑詳解
前言
項目中的一個小需求點,點擊按鈕,驗證幾十個條件框,判斷所有條件框是否填寫(選擇)過數(shù)據(jù)(至少有一個條件判斷為真)再執(zhí)行對應操作
判斷的條件框包含 Radio 單選框,Checkbox 多選框,Input 輸入框,InputNumber 計數(shù)器, Select 選擇器, Switch 開關等
項目使用的 Element 組件庫 V2.15.6
不同條件對應的數(shù)據(jù)類型以及默認值
- Radio 單選框 string ''
- Checkbox 多選框 array []
- Input 輸入框 string ''
- InputNumber 計數(shù)器 number 0
- Select 選擇器
- 單選 string ''
- 多選 array []
- Switch 開關 boolean false
代碼實現(xiàn)
思路一
直接用 if 判斷開干,然后大概代碼如下(變量為模擬變量)
// 多條件判斷開始,如下 if (obj.radio1 || obj.checkbox1.length > 0 || obj.input1 || obj.inputNumber1 > 0 || obj.select1 || obj.select2.length > 0 || obj.switch1 || obj.radio2 || obj.checkbox2.length > 0 || obj.input2 || obj.inputNumber2 > 0 || obj.select3 || obj.select4.length > 0 || obj.switch2 ...) { // do something } else { // 條件不符,提示 this.$message({ message: '請選擇條件后重試', type: 'warning' }) return false }
實際項目場景中的變量名因為語義化字符很多, if 判斷沒寫幾個就寫了很長一串, 然后寫了幾個就寫不動了(感覺在寫一坨 shi )
能不能用更優(yōu)雅的方式實現(xiàn)呢?
思路二
把這些需要判斷的變量放到一個數(shù)組里,用 map 處理成 Boolean 類型,使用 includes 判斷數(shù)組中是否包含指定的 Boolean 值
// 多條件判斷開始,如下 const arr = [ obj.radio1, obj.checkbox1.length, obj.input1, obj.inputNumber1, obj.select1, obj.select2.length, obj.switch1, obj.radio2, obj.checkbox2.length, obj.input2, obj.inputNumber2, obj.select3, obj.select4.length, obj.switch2 ... ] const arr1 = arr.map(item => Boolean(item)) if (arr1.includes(true)) { // do something } else { // 條件不符,提示 this.$message({ message: '請選擇條件后重試', type: 'warning' }) return false }
好了,if 處理大量判斷用這種方式使是不是更絲滑了 ^-^
總結
到此這篇關于如何讓js中if判斷如絲般順滑的文章就介紹到這了,更多相關js中的if判斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
參考文檔
- developer.mozilla.org/zh-CN/docs/…
- developer.mozilla.org/zh-CN/docs/…
- developer.mozilla.org/zh-CN/docs/…
- JS如何對Iframe內(nèi)外頁面進行操作總結
- 簡易版本JSON.stringify的實現(xiàn)及其六大特性詳解
- JSON.stringify的多種用法總結
- Vue實現(xiàn)在線預覽pdf文件功能(利用pdf.js/iframe/embed)
- JavaScript JSON.stringify()的使用總結
- 詳解如何解決使用JSON.stringify時遇到的循環(huán)引用問題
- json.stringify()與json.parse()的區(qū)別以及用處
- Selenium+BeautifulSoup+json獲取Script標簽內(nèi)的json數(shù)據(jù)
- 關于JavaScript?中?if包含逗號表達式
相關文章
JavaScript動態(tài)操作表格實例(添加,刪除行,列及單元格)
這篇文章主要是對JavaScript動態(tài)操作表格實例(添加,刪除行,列及單元格)進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11使用postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞
這篇文章主要介紹了使用postMesssage()實現(xiàn)iframe跨域頁面間的信息傳遞 的相關資料,需要的朋友可以參考下2016-03-03JavaScript參數(shù)個數(shù)可變的函數(shù)舉例說明
JavaScript允許一個函數(shù)傳遞個數(shù)可變的參數(shù),因為有arguments這個內(nèi)置對象,它一個函數(shù)傳遞的所有參數(shù)的數(shù)組2014-10-10