Sobes.tech
Junior — Middle

Kiedy metoda reduce zwraca obiekt i w jakich przypadkach może to robić?

sobes.tech AI

Odpowiedź od AI

Metoda reduce w JavaScript (a nie w Java, być może chodziło o JavaScript) zwraca obiekt w przypadkach, gdy akumulator w procesie redukcji jest obiektem. Dzieje się tak, jeśli początkowa wartość akumulatora jest obiektem, lub jeśli w ciele funkcji redukującej zwracany jest obiekt.

Na przykład, jeśli chcesz zebrać elementy tablicy w obiekt z liczbą wystąpień:

const arr = ['jabłko', 'banan', 'jabłko', 'pomarańcza'];
const result = arr.reduce((acc, item) => {
  acc[item] = (acc[item] || 0) + 1;
  return acc;
}, {});
console.log(result); // { jabłko: 2, banan: 1, pomarańcza: 1 }

Tutaj reduce zwraca obiekt, ponieważ akumulator jest obiektem, a funkcja redukująca go aktualizuje na każdym kroku.

W związku z tym, reduce może zwracać obiekt, gdy zadanie polega na agregacji danych w obiekt, np. grupowanie, liczenie, tworzenie słowników itp.