结合Java中的Reduce和Map数据结构?

时间:2019-04-09 21:32:01

标签: javascript reduce

我正在尝试在Javascript对象数组上使用reduce模式。但是,我希望不能够在单个化简器中执行此操作,而是希望能够根据为数组中每个项目设置的条件使用不同的化简器。因此,它看起来像下面的样子。

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){...}

这可能吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您似乎正在寻找

values.reduce((acc, el, i) => FOO_MAP.get(el.field)(acc, el, i), 0);