es6 map处理多条件结果返回
当判断条件繁多时,用if...else虽然可以得到想要的结果,但显得相当复杂,且不够高级。
此时我们可以用switch...case来替换,会更加简洁,且利于阅读,但这种方法也比较普遍。
还有一种更优化的方法——es6提供了Map 对象来保存键值对,任何值(对象或者原始值) 都可以作为一个键或一个值。
===方案1===
var key = 'a' var value = back() console.log(value) // 1 function back() { if(key == 'a') { return 1 } else if(key == 'b' || key == 'c') { return 2 } }
===方案2===
var key = 'b' var value = back() console.log(value) // 2 function back() { switch (key) { case 'a': return 1 break; case 'b': case 'c': return 2 break; } }
===方案3===
var map = new Map([ ['a', 1], ['b', 2], ['c', 2], ]) console.log(map.get('a')) // 1 console.log(map.get('b')) // 2 console.log(map.get('c')) // 2
除了map.get之外,还可以使用map.set的方法往Map中添加新的数组,以便筛选 ↓
map.set('d', 3) console.log(map.get('d')) // 3