JS优化技巧

214 阅读1分钟

使用Array.includes优化if...else语句

方法介绍:

includes()方法用来判断一个数组是否包含一个指定的值,根据情况,返回true/false

const array = [1,2,3]
console.log(array.includes(2))          =>> true

const pets = ['cat','dog','bat']
console.log(pets.includes('cat'))        =>> true
console.log(pets.includes('at'))         =>> false

例子

优化前代码:

function checkName(name) {
  if(name === 'jack' || name === 'tom') {
     console.log('名称是' + name)
  }else {
  console.log('没有对应的名称')
  }
}

优化后代码

function checkName(name) {
  const nameList = ['jack','tom','Jerry','Fine']
  
  if(nameList.includes(name)) {
     console.log('名称是' + name)
  }else {
  console.log('没有对应的名称')
  }
}

优化理由:

可以看到在原代码里,使用了一个 if...else 判断传入函数的值,是否与某些值相等,并执行相同的操作。

使用if(value === xxx) 做判断,需要人工维护,会写出非常多的冗余代码。尤其当需求迭代判断值增多,会让代码变得非常冗长繁琐,难以阅读。

将值填入数组,使用 includes 判断是否存在值。可以省去非常多的维护工作,并且可读性高。 同时,这个数组也可以维护在其他位置,如配置文件中(判断接口响应Code),通过后端接口获取(判断用户列表等)