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.