之前学习Map的时候没想到能怎么用,今天看一个多if...else的判断时想到了Map,使用Map存放判断条件和处理方法的对应关系

function lessThanTen(num) {
return num < 10;
}

function add(a, b) {
return a + b;
}

function equalsTen(num) {
return num === 10;
}

function multiple(a, b) {
return a * b;
}

function largerThanFourty(num) {
return num > 40;
}

function minus(a, b) {
return a - b;
}

function operate(a,b) {
const map = new Map([
[lessThanTen, add],
[equalsTen, multiple],
[largerThanFourty, minus]
]);

let result = a;

for (const condition of map.keys()) {
if(condition(a)){
result = map.get(condition)(a,b);
break;
}
}

return result;
}
展开
2