Когда метод reduce возвращает объект, и в каких случаях он может это делать?

Метод reduce в JavaScript (а не в Java, возможно, имелось в виду JavaScript) возвращает объект в тех случаях, когда аккумулятором в процессе редукции является объект.

Короткий ответ

Что ответить на собеседовании

Метод reduce в JavaScript (а не в Java, возможно, имелось в виду JavaScript) возвращает объект в тех случаях, когда аккумулятором в процессе редукции является объект. Это происходит, если начальное значение аккумулятора — объект, либо если в теле функции-редьюсера возвращается объект.

Подробный разбор

Ответ с пояснениями

Метод reduce в JavaScript (а не в Java, возможно, имелось в виду JavaScript) возвращает объект в тех случаях, когда аккумулятором в процессе редукции является объект. Это происходит, если начальное значение аккумулятора — объект, либо если в теле функции-редьюсера возвращается объект.

Например, если нужно собрать элементы массива в объект с подсчетом количества повторений:

const arr = ['apple', 'banana', 'apple', 'orange'];
const result = arr.reduce((acc, item) => {
  acc[item] = (acc[item] || 0) + 1;
  return acc;
}, {});
console.log(result); // { apple: 2, banana: 1, orange: 1 }

Здесь reduce возвращает объект, потому что аккумулятор — объект, и функция-редьюсер обновляет его на каждом шаге.

Таким образом, reduce может возвращать объект, когда задача сводится к агрегированию данных в объект, например, группировка, подсчет, построение словаря и т.п.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее