多個(gè)條件對(duì)應(yīng)數(shù)據(jù)處理(if else)


// 場(chǎng)景一:多個(gè)condition對(duì)應(yīng)名稱(chēng)

// 方案1: 將condition用Object對(duì)象形式存在Map對(duì)象里
const actions = new Map([  
  [{identity:'guest',status:1},()=>{/*do sth*/}],  
  [{identity:'guest',status:2},()=>{/*do sth*/}],  
  //...
  ])
const onButtonClick = (identity,status)=>{  
  let action = [...actions].filter(([key,value])=>(key.identity == identity && key.status == status))  
  action.forEach(([key,value])=>value.call(this))
}

// 方案2: 將condition用字符拼接形式存在Object對(duì)象里

const actions = { 
  'guest_1':()=>{/*do sth*/},  
  'guest_2':()=>{/*do sth*/},  
  //....
}
const onButtonClick = (identity,status)=>{  
  let action = actions[`${identity}_${status}`] || actions['default'] 
  action.call(this)
}

// 場(chǎng)景四: 根據(jù)范圍去進(jìn)行不同處理
// 「舉個(gè)栗子:」 比如大家可能會(huì)遇到類(lèi)似下面的需求:比如某平臺(tái)的信用分?jǐn)?shù)評(píng)級(jí),超過(guò)700-950,就是信用極好,650-700信用優(yōu)秀,600-650信用良好,550-600信用中等,350-550信用較差。

// 方案一、用look-up表,把配置數(shù)據(jù)和業(yè)務(wù)邏輯分離



showGrace(grace,level,levelForGrace) {   
  for(let i=0;i<level.length;i++){        
    if(grace>=level[i]){           
      return levelForGrace[i];       
    }   
  }  
  //如果不存在,那么就是分?jǐn)?shù)很低,返回最后一個(gè)
 return levelForGrace[levelForGrace.length-1]
}

let graceForLevel=[700,650,600,550];
let levelText=['信用極好','信用優(yōu)秀','信用良好','信用中等','信用較差'];

showGrace(610,graceForLevel,levelText) // '信用良好'



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容