Jsou to neměnné iterátory polí — vrací novou hodnotu místo mutace původní, což vede k čistšímu, deklarativnějšímu kódu než ruční smyčky for.
js
nums = [, , , ];
nums.( n * );
nums.( n % === );
nums.( sum + n, );
Jsou to neměnné iterátory polí — vrací novou hodnotu místo mutace původní, což vede k čistšímu, deklarativnějšímu kódu než ruční smyčky for.
nums = [, , , ];
nums.( n * );
nums.( n % === );
nums.( sum + n, );
Reduce prochází polem s "akumulátorem". Každý krok vrátí nový akumulátor:
// step 0: acc=0, n=1 → 1
// step 1: acc=1, n=2 → 3
// step 2: acc=3, n=3 → 6
// step 3: acc=6, n=4 → 10
Není to jen na součty — reduce může vytvářet objekty, seskupovat prvky nebo zploštovat:
users.reduce((acc, u) => { acc[u.id] = u; return acc; }, {}); // index by id
Vhodně se řetězí a nemutují, což je důležité v uživatelských rozhraních řízených stavem. Používejte forEach pouze pro vedlejší efekty (vrací nic). Pro velká pole, kde byste jinak řetězili více průchodů, může být jediný reduce nebo prostá smyčka efektivnější.