javascript – lodash中的数组映射函数

我有这个 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并仅使用那些但仍然可能没有必要.

点赞