进入公司前,在面试的时候就曾被问到这个问题,有没有比switch—case完美的写法取代它,我当时是一脸懵逼,后来进入到公司后,终于碰到了这个问题,所以赶紧总结下来!
原来我的代码:
switch(column.property) {
case "money":
sums[index] = (this.sumFooter.moneySum / 100).toFixed(2);
break;
case "profit":
sums[index] = this.sumFooter.profitSum / 100;
break;
default:
break;
}
老套的switch—case写法。
主管修改后的代码:
let mapSum = {
'money': function(f) {
return sums[index] = (f.moneySum / 100).toFixed(2)
},
'profit': function(f) {
return sums[index] = f.profitSum / 100
}
}
let action = mapSum[column.property]
if(!action)
return
action(this.sumFooter)