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ší.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět