તે immutable array iterators છે — તેઓ મૂળને બદલવાને બદલે નવું મૂલ્ય પરત આપે છે, જે પરિણામે ম્યુઅલ for લૂપ્સ કરતાં સ્વચ્છ અને વધુ ઘોષણાત્મક કોડ બને છે।
js
nums = [, , , ];
nums.( n * );
nums.( n % === );
nums.( sum + n, );
તે immutable array iterators છે — તેઓ મૂળને બદલવાને બદલે નવું મૂલ્ય પરત આપે છે, જે પરિણામે ম્યુઅલ for લૂપ્સ કરતાં સ્વચ્છ અને વધુ ઘોષણાત્મક કોડ બને છે।
nums = [, , , ];
nums.( n * );
nums.( n % === );
nums.( sum + n, );
Reduce એરે ચાલે છે "accumulator" વહન કરી રહ્યો છે. દરેક પગલું નવી accumulator પરત આપે છે:
// 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
તે માત્ર સમ માટે નથી — reduce વસ્તુઓ બનાવી શકે છે, આઇટમ્સ જૂથ કરી શકે છે અથવા સમતલ કરી શકે છે:
users.reduce((acc, u) => { acc[u.id] = u; return acc; }, {}); // index by id
તેઓ chain સ્વચ્છતાથી અને પરિવર્તન કર્યા વિના, જે state-driven UIs માં મહત્વવાળું છે। માત્ર side effects માટે forEach ব્યવહાર કરો (તે કશું પરત આપતું નથી). વિશાળ arrays માટે જ્યાં તમે અન્યથા ઘણાં પાસ chaining કરો, એક reduce અથવા સાદું loop વધુ કાર્યક્ષમ હોઈ શકે છે.