javascript - 如何重构 Javascript 中的方法
问题描述
我写了以下3种方法:
方法编号 1:
var carYear = cars.filter(function(item) {
if (item.year > 1999) {
return item;
};
})
方法编号 2
var carVolvo = cars.filter(function(item) {
if (item.make == 'Volvo') {
return item;
};
});
方法编号 3
var carPrice = cars.filter(item => item.price < 5000);
如何重构将过滤器文本作为参数的方法?
我怎样才能将所有这些重构为一种方法,将过滤器文本和类型作为参数?
解决方案
我会选择 Nina Scholz 的方法。无论如何作为对 OP 问题的 100% 合规答案
如何重构将过滤器文本作为参数的方法?
function filterSwitcher(filterText) {
switch(filterText) {
case "year":
return item => item.year > 1999
case "make":
return item => item.make == 'Volvo'
case "price":
return item => item.price < 5000
}
}
cars.filter(filterSwitcher("price"))