使用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),通过后端接口获取(判断用户列表等)