你还在这么写分支?快别了兄弟
funciton User( name ){
const map = {
早上:'热干面',
中午:'糖醋排骨',
晚上:'麻辣龙虾',
}
if(name==='早上'){
console.log('热干面')
}else if(name==='中午'){
console.log('糖醋排骨')
}else if(name==='晚上'){
console.log('麻辣龙虾')
}
}
User('早上')
做映射 优化后
funciton User( name ){
const map = {
早上:'热干面',
中午:'糖醋排骨',
晚上:'麻辣龙虾',
}
if (map[name] ){
console.log( map[name] )
} else {
console.log( '不知道吃什么' )
}
}
User('早上')
同理 函数也可以这么用
funciton User( name ){
const map = {
早上: ()=> console.log('热干面'),
中午: ()=> console.log('糖醋排骨'),
晚上: ()=> console.log('麻辣龙虾'),
}
if(map[name]){
map[name]()
}else{
console.log('不知道吃什么')
}
}
User('早上')
略微复杂的函数同样可以
funciton User(name){
if (name.includes('早上')) {
console.log(name + '热干面')
} else if (name.includes('中午') && name.length <= 3) {
console.log(name + '糖醋排骨')
} else {
console.log( '不知道吃什么' )
}
}
优化后
funciton User(name){
const map = [
[
() => name.includes('早上'),
() => console.log(name + '热干面')
],
[
() => name.includes('中午') && name.length <= 3,
() => console.log(name + '糖醋排骨')
]
......
]
const target = map.find(m => m[0]())
if (target) {
target[1]()
} else {
console.log('不知道吃什么')
}
}
User('早上')