JS减少if-else的方法

121 阅读1分钟

前言

if else 结构看着逻辑清晰,但是当逻辑简单时,可以减少使用 if else,使代码简洁一些

示例

需求:根据3种不同的会员等级进行不同折扣,对顾客打折

使用Map

//会员信息
const member ={
  name:'胡歌',
  level:3
}
//使用new Map() ,将会员等级/折扣用键值对管理
const levelDiscount = new Map([
  [1,0.9],
  [2,0.8],
  [3,0.7],
  [4,0.6],
  [5,0.5]
])
//打折
const discount = (total,member) => total *  levelDiscount.get(member.level)

//胡歌3级会员来打7折,10000--->7000
discount(10000,member)

配置对象

//会员信息
const member ={
  name:'胡歌',
  level:3
}
//当我们使用对象存储数据时,不要用数字作用对象的key,以避免内存浪费,数值型/字符串的数字作key,key是相同的
const levelDiscount ={
  '1':0.9,
  '2':0.8,
  '3':0.7
}
//打折
const discount = (total,member) => total *  levelDiscount[member.level]

//胡歌3级会员来打7折,10000--->7000
discount(10000,member)

总结

当然也可以使用switch case 、三元运算等其他方法替换if else

文章主要记录一些前端相关知识点,用于自身工作,如有不足,望大家指出,谢谢。