if else 写多了,没别的就是恶心
1. 三元运算 ,或方式
if(flag){
a=b
}else{
a=c
}
==> a=a || b
或者 a= flag? b: c
2.数组匹配方式
后台接口通常会返回这种数据:
fruit: 0 // 0=苹果,1=梨子,2=桔子,3=柠檬,4=芒果...
var _f = ['苹果','梨子','桔子','柠檬','芒果'];
shuiguo = _f[fruit];
3. switch case方式
if (res.state === 'SUCCESS') {
//TODO
} else if (res.state === 'FAIL') {
//TODO
} else {
//TODO
}
优化使用switch case
switch (res.state) {
case 'SUCCESS':
//TODO
break;
case 'FAIL':
//TODO
break;
default :
//TODO
}
4. 哈希表的方式
if (key == "Apple") {
val = "Jobs";
} else if (key == "microsoft"){
val = "Gates";
} else if (key == "Google"){
val = "Larry";
}
可以用hash
var ceos = {"Apple":"Jobs", "microsoft":"Gates", "Google":"Larry"};
val = ceos[key];
5. new Map 方式也可以
上面的案例 可以改成
let map = new Map([
['Apple' , 'Jons'] ,
['microsoft' , 'Gates'] ,
['Google' , 'Larry']
])
let val = null
let tmp = 'Apple'
for (const [key, value] of map) {
if (tmp == key) {
val = value
}
}
原文 自己又补充了一个 :https://segmentfault.com/a/11...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。