我有这个 javascript代码块:
function arrayMapper(mappingFunc) {
return items => items.map(mappingFunc);
}
function fooTransformer(tem) {
return (...); // do something with item and returns a value
}
function barTransformer(tem) {
return (...); // do something with item and returns a value
}
const foosTransformer = arrayMapper(fooTransformer);
const barsTransformer = arrayMapper(barTransformer);
(...)
foosTransformer([1, 2, 3]);
我想知道像我的arrayMapper函数这样的东西是否会像lodash一样本地存在,只是为了避免重新发明轮子.
最佳答案 你基本上做的是 currying地图功能(从右边开始).
Lodash允许你做到这一点:
const mapper = _.curryRight(_.map);
const square = mapper(x => x ** 2);
console.log(
square([1, 2, 3]) // [1, 4, 9]
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
话虽如此,为这么小的功能引入一个完整的库肯定是一种过度的技术.也许如果你正在使用npm,你可以只安装lodash.curryright lodash.map并仅使用那些但仍然可能没有必要.