Sobes.tech
Junior — Middle
69

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

Answer from AI

sobes.tech AI

Метод 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 может возвращать объект, когда задача сводится к агрегированию данных в объект, например, группировка, подсчет, построение словаря и т.п.