Конечно, есть много вопросов, чтобы сравнить функцию JavaScript reduce
с функцией map
. Но мой вопрос точно связан с моей проблемой, я должен изменить элемент внутри коллекции на основе условия, я могу написать двумя способами, используя map
или reduce
:
// using map function
const formGroupModifierToMultiSelectLocation = (groups: Object[]) =>
groups.map(({ components: cs, ...other }) => ({
components: cs.map(({ type, ...rest }) => ({
multiple: type === 'location',
type,
...rest,
})),
...other,
}));
// using reduce function
const formGroupModifierToMultiSelectLocation = (groups: Object[]) =>
groups.reduce(
(acc, { components: cs, ...other }) => [
...acc,
{
components: cs.map(({ type, ...rest }) => ({
multiple: type === 'location',
type,
...rest,
})),
...other,
},
],
Я предпочитаю использовать map
, потому что он более читабелен, чем reduce
. Я не знаю, может быть, в моем случае использование reduce
имеет некоторые преимущества, которых я не знаю. В обзоре кода рецензент предлагает мне использовать reduce
вместо map
. У меня нет причин менять свои коды.
Актуальный вопрос: Каковы преимущества использования JavaScript уменьшение по сравнению с функцией карты в моем случае?