js map对象处理if

onButtonClick只有一个参数时候,map和object对象都可以

// onButtonClick1(3) onButtonClick只有一个参数时候,map和object对象都可以
const map1 = new Map()
  .set(1, { message: 'processing', page: 'indexPage' })
  .set(2, { message: 'fail', page: 'failPage' })
  .set(3, { message: 'success', page: 'successPage' })
  .set(4, { message: 'cancel', page: 'cancelPage' })
  .set('default', { message: 'other', page: 'otherPage' })
const onButtonClick2 = status => {

  if (map1.has(status)) {
    let { message, page } = map1.get(status)
    sendLog(message)
    jumpTo(page)
  }
}

const sendLog = message => {
  console.log(message);
}
const jumpTo = page => {
  console.log(page);
}

增加onButtonClick参数 ,这个时候map是最好的选择

// 增加onButtonClick参数 ,这个时候map是最好的选择
const map3 = new Map()
  .set({ identity: 'guest', status: 1 }, { message: 'processing', page: 'indexPage' })
  .set({ identity: 'guest', status: 2 }, { message: 'fail', page: 'failPage' })
  .set({ identity: 'guest', status: 3 }, { message: 'success', page: 'successPage' })
  .set({ identity: 'guest', status: 4 }, { message: 'cancel', page: 'cancelPage' })
  .set({ identity: 'guest', status: 5 }, { message: 'other', page: 'otherPage' })
  .set({ identity: 'master', status: 1 }, { message: 'processing', page: 'indexPage' })
  .set({ identity: 'master', status: 2 }, { message: 'fail', page: 'failPage' })
  .set({ identity: 'master', status: 3 }, { message: 'success', page: 'successPage' })
  .set({ identity: 'master', status: 4 }, { message: 'cancel', page: 'cancelPage' })
  .set({ identity: 'master', status: 5 }, { message: 'other', page: 'otherPage' })
const onButtonClick4 = (identity, status) => {
  const mapItem = [...map3].find(([key, value]) => {
    return key.identity === identity && key.status === status
  })
  if (!mapItem) return
  const [key, { message, page }] = mapItem
  sendLog(message)
  jumpTo(page)

}
onButtonClick4('master', 3)

 

posted on 2020-08-02 16:36  章画  阅读(1557)  评论(0编辑  收藏  举报

导航