前端在進行各種判斷的時候,if會用到很多,但是如果判斷的條件過多,還一直用if,代碼會非常臃腫,而且可修改性不強
那么就有人說了,if不行,那我用switch case唄,但是用switch case 也沒有解決代碼臃腫和可修改性,這個時候我們就可以用js中的映射了,通過映射來代碼進行簡化和修改。
舉個簡單的例子,比如現在有100個判斷條件,那if該怎么寫,switch case又要怎么寫,代碼看起來是特別奇怪的,映射就很好修改和使用了。
來個實際例子,現在我們有一個需求,在項目國際化的時候,需要根據languge的不同,對需要國際化的語言進行相應的操作,用映射怎么寫呢
let languge = 'zh-CN'
let obj:any = {'zh-CN':()=>{console.log(tInJs?.$t('message.hello'));return tInJs?.$t('message.hello')},'en-US': () => {console.log(333);}
}
我們執行的時候,直接
obj[languge]() //完事
那有人說,這個langue不在你obj里面有響應的key值,又該怎么辦呢,那也很簡單
let languge = 'zh-CN'
let obj:any = {'zh-CN':()=>{console.log(222);},'en-US': () => {console.log(333);},'default': () => {console.log('暫無匹配元素');return '暫無匹配元素'}
}
if (obj[languge] == undefined) {obj['default']()
}else{obj[languge]()
}