Judge Complex(判断-复杂)

1.if/else
2.switch
3.一元判断时:存到Object里
4.一元判断时:存到Map里
5.多元判断时:将condition拼接成字符串存到Object里
6.多元判断时:将condition拼接成字符串存到Map里
7.多元判断时:将condition存为Object存到Map里
8.多元判断时:将condition写作正则存到Map里
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 商品售罄 4 开团成功 5 系统取消
 */
const onButtonClick = (status)=>{
     
  if(status == 1){
     
    sendLog('processing')
    jumpTo('IndexPage')
  }else if(status == 2){
     
    sendLog('fail')
    jumpTo('FailPage')
  }else if(status == 3){
     
    sendLog('fail')
    jumpTo('FailPage')
  }else if(status == 4){
     
    sendLog('success')
    jumpTo('SuccessPage')
  }else if(status == 5){
     
    sendLog('cancel')
    jumpTo('CancelPage')
  }else {
     
    sendLog('other')
    jumpTo('Index')
  }
}
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 商品售罄 4 开团成功 5 系统取消
 */
const onButtonClick = (status)=>{
     
  switch (status){
     
    case 1:
      sendLog('processing')
      jumpTo('IndexPage')
      break
    case 2:
    case 3:
      sendLog('fail')
      jumpTo('FailPage')
      break  
    case 4:
      sendLog('success')
      jumpTo('SuccessPage')
      break
    case 5:
      sendLog('cancel')
      jumpTo('CancelPage')
      break
    default:
      sendLog('other')
      jumpTo('Index')
      break
  }
}
const actions = {
     
  '1': ['processing','IndexPage'],
  '2': ['fail','FailPage'],
  '3': ['fail','FailPage'],
  '4': ['success','SuccessPage'],
  '5': ['cancel','CancelPage'],
  'default': ['other','Index'],
}
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1开团进行中 2开团失败 3 商品售罄 4 开团成功 5 系统取消
 */
const onButtonClick = (status)=>{
     
      let action = actions[status] || actions['default'],
      logName = action[0],
      pageName = action[1]
      sendLog(logName)
      jumpTo(pageName)
}
const actions = new Map([
  [1, ['processing','IndexPage']],
  [2, ['fail','FailPage']],
  [3, ['fail','FailPage']],
  [4, ['success','SuccessPage']],
  [5, ['cancel','CancelPage']],
  ['default', ['other','Index']]
])
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 商品售罄 4 开团成功 5 系统取消
 */
const onButtonClick = (status)=>{
     
      let action = actions.get(status) || actions.get('default')
      sendLog(action[0])
      jumpTo(action[1])
}
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1开团进行中 2开团失败 3 开团成功 4 商品售罄 5 有库存未开团
 * @param {string} identity 身份标识:guest客态 master主态
 */
const onButtonClick = (status,identity)=>{
     
  if(identity == 'guest'){
     
    if(status == 1){
     
      //do sth
    }else if(status == 2){
     
      //do sth
    }else if(status == 3){
     
      //do sth
    }else if(status == 4){
     
      //do sth
    }else if(status == 5){
     
      //do sth
    }else {
     
      //do sth
    }
  }else if(identity == 'master') {
     
    if(status == 1){
     
      //do sth
    }else if(status == 2){
     
      //do sth
    }else if(status == 3){
     
      //do sth
    }else if(status == 4){
     
      //do sth
    }else if(status == 5){
     
      //do sth
    }else {
     
      //do sth
    }
  }
}
const actions = new Map([
  ['guest_1', ()=>{
     /*do sth*/}],
  ['guest_2', ()=>{
     /*do sth*/}],
  ['guest_3', ()=>{
     /*do sth*/}],
  ['guest_4', ()=>{
     /*do sth*/}],
  ['guest_5', ()=>{
     /*do sth*/}],
  ['master_1', ()=>{
     /*do sth*/}],
  ['master_2', ()=>{
     /*do sth*/}],
  ['master_3', ()=>{
     /*do sth*/}],
  ['master_4', ()=>{
     /*do sth*/}],
  ['master_5', ()=>{
     /*do sth*/}],
  ['default', ()=>{
     /*do sth*/}],
])

/**
 * 按钮点击事件
 * @param {string} identity 身份标识:guest客态 master主态
 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 开团成功 4 商品售罄 5 有库存未开团
 */
const onButtonClick = (identity,status)=>{
     
      let action = actions.get(`${
       identity}_${
       status}`) || actions.get('default);
      action.call(this)}
const actions = {
     
  'guest_1':()=>{
     /*do sth*/},
  'guest_2':()=>{
     /*do sth*/},
  //....
}

const onButtonClick = (identity,status)=>{
     
  let action = actions[`${
       identity}_${
       status}`] || actions['default']
  action.call(this)
}
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))
}
const actions = ()=>{
     
  const functionA = ()=>{
     /*do sth*/}
  const functionB = ()=>{
     /*do sth*/}
  return new Map([
    [{
     identity:'guest',status:1},functionA],
    [{
     identity:'guest',status:2},functionA],
    [{
     identity:'guest',status:3},functionA],
    [{
     identity:'guest',status:4},functionA],
    [{
     identity:'guest',status:5},functionB],
    //...
  ])
}

const onButtonClick = (identity,status)=>{
     
  let action = [...actions()].filter(([key,value])=>(key.identity == identity && key.status == status))
  action.forEach(([key,value])=>value.call(this))
}
const actions = ()=>{
     
  const functionA = ()=>{
     /*do sth*/}
  const functionB = ()=>{
     /*do sth*/}
  return new Map([
    [/^guest_[1-4]$/,functionA],
    [/^guest_5$/,functionB],
    //...
  ])
}

const onButtonClick = (identity,status)=>{
     
  let action = [...actions()].filter(([key,value])=>(key.test(`${
       identity}_${
       status}`)))
  action.forEach(([key,value])=>value.call(this))
}
const actions = ()=>{
     
  const functionA = ()=>{
     /*do sth*/}
  const functionB = ()=>{
     /*do sth*/}
  const functionC = ()=>{
     /*send log*/}
  return new Map([
    [/^guest_[1-4]$/,functionA],
    [/^guest_5$/,functionB],
    [/^guest_.*$/,functionC],
    //...
  ])
}

const onButtonClick = (identity,status)=>{
     
  let action = [...actions()].filter(([key,value])=>(key.test(`${
       identity}_${
       status}`)))
  action.forEach(([key,value])=>value.call(this))
}
if (termId < 5 && dType === 1) {
             // 在线、长期班
    return this.label._item2
} else if (termId < 5 && dType === 2) {
      // 双师、长期班
    return this.label._item1
} else if (termId < 5 && dType === 4) {
      // 面授、长期班
    return this.label._item1
} else if (termId > 4 && dType === 1) {
      // 在线、短期班
    return this.label._item3
} else if (termId > 4 && dType === 2) {
      // 双师、短期班
    return this.label._item3
} else if (termId > 4 && dType === 4) {
      // 面授、短期班
    return this.label._item2
}

const actions = {
      
       'long':{
      
          1:'_item2', 
          2:'_item1', 
          4:'_item3' 
        }, 
        'short':{
      
          1:'_item3', 
          2:'_item3', 
          4:'_item2' 
        } 
      } 
const onButtonClick = (id,type)=>{
      
       console.info(actions[id>4?'long':'short'][type]) 
} 
onButtonClick(4,1)const actions = ()=>{
      
    return new Map([ 
        [/^[0-4]_\d$/,{
      
            1:'_item2', 
            2:'_item1', 
            4:'_item3' 
        }], 
        [/^[5-9]_\d$/,{
      
            1:'_item3', 
            2:'_item3', 
            4:'_item2' 
        }]
    ]) 
} 
const onButtonClick = (id,type)=>{
      
    let str = `${
       id}_${
       type}` 
    let result = [...actions()] 
        .filter(([key,value])=>key.test(str)) 
        .map(([key,value])=>value[type]) 
        .join('') 
    console.info(result) 
} 
onButtonClick(4,1)
  function returnWeekday() {
     
    let string = "今天是星期";
    let date = new Date().getDay(); // 使用对象
    dateObj = {
     
      0: ['天', '休'],
      1: ["一", '工'],
      2: ["二", '工'],
      3: ["三", '工'],
      4: ["四", '工'],
      5: ["五", '工'],
      6: ["六", '休'],
    } // 类型,这里也可以对应相关方法 
    dayType = {
     
      '休': function () {
     
        // some code
        console.log('为休息日')
      },
      '工': function () {
     
        // some code 
        console.log('为工作日')
      }
    }
    let returnData = {
     
      'string': string + dateObj[date][0],
      'method': dayType[dateObj[date][1]]
    }
    return returnData
  };
  console.log(returnWeekday().method.call(this))

你可能感兴趣的:(Javascript,javascript,前端,typescript,es6,node.js)