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

  1. 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.
  2. 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].
  3. currentIndex – L-indiċi tal-element attwali.
  4. 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
---