Huma huma immutable array iterators — irrigguardaw valur ġdid minflok li jbiddlu l-oriġinali, li jirriżulta f'kodiċi aktar ċċar u aktar dichjarattiv milli loops for manuali.
js
const nums = [1, 2, 3, 4];
// map: transform each item → array of the SAME length
nums.map(n => n * 2); // [2, 4, 6, 8]
// filter: keep items passing a test → SHORTER array
nums.filter(n => n % 2 === 0); // [2, 4]
// reduce: fold the array into ONE value (accumulator + current)
nums.reduce((sum, n) => sum + n, 0); // 10
// ^acc ^item ^initial value
Kif jaħdem reduce (dak li ħafna drabi jsibuha komplessa)
Reduce jimxi mill-array biddata "accumulator". Kull pass jirrigguarda l-accumulator il-ġdid:
js
// 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
Mhux biss għall-ammonti — reduce tista' tibni oġġetti, tiġbor oġġetti, jew titkeppi:
js
users.reduce((acc, u) => { acc[u.id] = u; return acc; }, {}); // index by id
Għaliex huma preferiti
Huma chain bir-reqqa u ma jbiddlux, li huwa importanti fit-UIs mifqugħa mill-istat. Uża forEach biss għal effetti sekondji (ma triddx xejn). Għal arrays kbar fejn għandek inkella tkun qed tirkib bosta passes, reduce wieħed jew loop normali tista' tkun aktar effiċjenti.
