我正在尝试对 Javascript 对象数组使用缩减模式。但是,我不想在单个 reducer 中执行此操作,而是希望能够根据为数组中的每个项目设置的条件使用不同的 reducer。所以,它看起来像下面这样。
const FOO_MAP = new Map([
["Foo1", Bar1],
["Foo2", Bar2]]
);
function calcTotal(values) {
if(values == null) return 0;
return values.reduce(FOO_MAP.get(value.field));
}
function Bar1(previous, curr){...}
function Bar2(previous, curr){...}
这可能吗?谢谢!
最佳答案
你好像在找
values.reduce((acc, el, i) => FOO_MAP.get(el.field)(acc, el, i), 0);
关于javascript - 在 Javascript 中结合 Reduce 和 Map 数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55601635/