Объединить и уменьшить структуру данных карты в Javascript? - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь использовать шаблон сокращения в массиве объектов Javascript.Но вместо того, чтобы делать это в одном редукторе, я хочу иметь возможность использовать другой редуктор на основе набора условий для каждого из элементов в массиве.Итак, это будет выглядеть следующим образом.

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 Ответ

2 голосов
/ 10 апреля 2019

Вы, похоже, ищете

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