JavaScript Arrays : Nifhmu l-tnaqqas funzjoni
sintassi
arr.reduce(callbackFunction, [initialValue])
X'jagħmel jnaqqsu do?
Naqqas hija funzjoni li loops permezz ta 'firxa.
Operazzjonijiet jistgħu jitwettqu fuq il-firxa permezz ta 'funzjoni callback.
Fl-aħħar ta 'l-operazzjonijiet fuq il-firxa, inaqqsu l-qligħ ta 'valur wieħed
Naqqas jistgħu jintużaw, pereżempju, għal total shopping cart
eżempju
let arr = [1,2,3,4,5];
arr.reduce( (akkumulatur, currentValue, currentIndex, firxa) => {
//xi operazzjonijiet;
ritorn xi ħaġa;
});
Il Funzjoni callback
Il-funzjoni callback tiġi invokata għal kull element fil-firxa, tgħaddi fil 4 argumenti li huma mgħoddija minn dak li jnaqqsu funzjoni.
dawn 4 argumenti allura jistgħu jintużaw fil-funzjoni callback tagħna.
Jieħu erba 'argumenti
- akkumulatur – L-ewwel element ta 'l-array fuq l-ewwel linja jew valur inizjali jekk fornut. Imbagħad il-valur lura mill-linja ta 'qabel.
- currentValue – L-element attwali fis-firxa. Tibda mit-tieni element fil-, jiġifieri firxa. arr[1], meta l-argument valur inizjali ma jgħaddix. Jekk l-argument valur inizjali huwa mgħoddi valur korrenti jibda mill-element 1 fil-Imġarr firxa[0].
- currentIndex – L-indiċi tal-element attwali.
- firxa – Il-firxa sħiħa.
Eżempju ta 'Ħidma
let arr = [1,2,3,4,5]; arr.reduce( (akkumulatur, currentValue, currentIndex, firxa) => { console.log(`akkumulatur (Fl-1 loop, akkumulatur huwa arr[0], allura huwa l-valur irritornat tal-linja ta 'qabel): ${akkumulatur}`); console.log(`currentValue (Loops permezz tal-firxa, jibda arr[1]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`firxa: ${firxa}`); console.log('---'); akkumulatur ritorn + currentValue; } );
Riżultat
akkumulatur (Fl-1 loop, akkumulatur huwa arr[0], allura huwa l-valur irritornat tal-linja ta 'qabel): 1 currentValue (Loops permezz tal-firxa, jibda arr[1]): 2 currentIndex: 1 firxa: 1,2,3,4,5 --- akkumulatur (Fl-1 loop, akkumulatur huwa arr[0], allura huwa l-valur irritornat tal-linja ta 'qabel): 3 currentValue (Loops permezz tal-firxa, jibda arr[1]): 3 currentIndex: 2 firxa: 1,2,3,4,5 --- akkumulatur (Fl-1 loop, akkumulatur huwa arr[0], allura huwa l-valur irritornat tal-linja ta 'qabel): 6 currentValue (Loops permezz tal-firxa, jibda arr[1]): 4 currentIndex: 3 firxa: 1,2,3,4,5 --- akkumulatur (Fl-1 loop, akkumulatur huwa arr[0], allura huwa l-valur irritornat tal-linja ta 'qabel): 10 currentValue (Loops permezz tal-firxa, jibda arr[1]): 5 currentIndex: 4 firxa: 1,2,3,4,5 ---
Tipprovdi l-valur inizjali
Tispeċifika t-tieni parametru (initialValue) fil-tnaqqas funzjoni se jikkawżaw initialValue li jgħaddi minnu l-argument akkumulatur fuq l-ewwel linja.
Innota li l-valur attwali fl-1 linja issa jibda fl-ewwel element ta 'l-array
Eżempju ta 'Ħidma
let arr = [1,2,3,4,5]; arr.reduce( (akkumulatur, currentValue, currentIndex, firxa) => { console.log(`akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): ${akkumulatur}`); console.log(`currentValue (Loops permezz tal-firxa, jibda arr[0]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`firxa: ${firxa}`); console.log('---'); akkumulatur ritorn + currentValue; }, 0 );
Riżultat
akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): 0 currentValue (Loops permezz tal-firxa, jibda arr[0]): 1 currentIndex: 0 firxa: 1,2,3,4,5 --- akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): 1 currentValue (Loops permezz tal-firxa, jibda arr[0]): 2 currentIndex: 1 firxa: 1,2,3,4,5 --- akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): 3 currentValue (Loops permezz tal-firxa, jibda arr[0]): 3 currentIndex: 2 firxa: 1,2,3,4,5 --- akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): 6 currentValue (Loops permezz tal-firxa, jibda arr[0]): 4 currentIndex: 3 firxa: 1,2,3,4,5 --- akkumulatur ( Fl-1 linja, dan huwa l-valur inizjali, allura l-valur lura mill-linja ta 'qabel): 10 currentValue (Loops permezz tal-firxa, jibda arr[0]): 5 currentIndex: 4 firxa: 1,2,3,4,5 ---
