什么你敢在项目中写多个if else判断不怕被打死?
在项目中超过或者等于3个if else的判断的话,这种写法是不友好的。
项目中遇到这样的一个需求,切换不同的选项,展示不同的数据。
正常的写法,就是 if else 判断切换的索引值,然后展示不同的数据
我们会使用多层 if else, 这种写法用于两个以内的判断还是可以的, 多层判断的话,代码可读性还是很差的
// 要展示的数据
let data = []
// 假设这个为餐饮的数据
let cateringData = [1,2,3]
// 假设这个为交通的数据
let trafficData = [1,2,3]
// 假设这个为酒店的数据
let hotelData = [1,2,3]
// 这种写法我们要拒绝掉
if (index === 0) {
data = cateringData
} else if(index === 1) {
data = trafficData
} else if(index === 2) {
data = hotelData
}
下面的这种写法可能会更好,这种写法类似于策略模式
有人会觉得这种写法,代码好像更多了,这种想法是错误的。
很喜欢一个老师说过的话:
如果写的代码是为了,更好的展示数据层次性的话,多余的代码是有必要的
// 要展示的数据
let data = []
// 假设这个为餐饮的数据
let cateringData = [1,2,3]
// 假设这个为交通的数据
let trafficData = [1,2,3]
// 假设这个为酒店的数据
let hotelData = [1,2,3]
// 使用这种写法
let mapData = [
{
id: 0,
desc: '餐饮的数据',
fn: () => cateringData
},
{
id: 1,
desc: '交通的数据',
fn: () => trafficData
},
{
id: 2,
desc: '酒店的数据',
fn: () => hotelData
}
]
function changeIndex(index) {
data = mapData [index].fn()
}
tip: 还有一个关于数组的,在项目中遇到的,下次有时间,可以写上来。有一点点难。