JavaScript array : Pag-unawa sa bawasan ang pag-andar

palaugnayan

arr.reduce(callbackFunction, [initialValue])

Ano ang ibig mabawasan gawin?

Bawasan ay isang function na loops sa pamamagitan ng isang array.

Operasyon ay maaaring gumanap sa array sa pamamagitan ng isang callback function.

Sa dulo ng mga operasyon sa array, mabawasan ang pagbalik ng isang solong halaga

Bawasan ang maaaring gamitin, Halimbawa, na may kabuuan ng isang shopping cart

halimbawa

  hayaan arr = [1,2,3,4,5];
  arr.reduce( (nagtitipon, CurrentValue, currentIndex, array) => { 
      //ang ilang mga operasyon;
      magbalik ng bagay;
  });

 

Ang callback function

Ang callback function ay mahihingi para sa bawat elemento sa array, pagpasa sa 4 argumento kung saan ang nakapasa sa pamamagitan ng mabawasan ang pag-andar.

mga ito 4 argumento pagkatapos ay maaaring gamitin sa aming callback function.

Dadalhin apat na argumento

  1. nagtitipon – Ang unang elemento ng array sa unang loop o paunang halaga kung ibinigay. Pagkatapos ay ang ibinalik na halaga ng nakaraang loop.
  2. CurrentValue – Ang kasalukuyang elemento sa array. Pagsisimula mula sa pangalawang elemento sa array ie. arr[1], kapag ang paunang halaga argument ay hindi nakapasa. Kung ang paunang halaga argument Lumipas pagkatapos ay kasalukuyang halaga ay nagsisimula mula sa ika-1 ng elemento sa array arr[0].
  3. currentIndex – Ang index ng kasalukuyang elemento.
  4. array – Ang buong array.

Nagtatrabaho Halimbawa

hayaan arr = [1,2,3,4,5];

arr.reduce(
  (nagtitipon, CurrentValue, currentIndex, array) => {
    console.log(`nagtitipon (Sa ika-1 ng loop, kolekta ng singaw na arr[0], pagkatapos ito ay ang ibinalik na halaga ng nakaraang loop): ${nagtitipon}`);
    console.log(`CurrentValue (Loop sa pamamagitan ng array, simula sa arr[1]): ${CurrentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`array: ${array}`);
    console.log('---');
    return nagtitipon + CurrentValue;
  }
);

output

nagtitipon (Sa ika-1 ng loop, kolekta ng singaw na arr[0], pagkatapos ito ay ang ibinalik na halaga ng nakaraang loop): 1
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[1]): 2
currentIndex: 1
array: 1,2,3,4,5
---
nagtitipon (Sa ika-1 ng loop, kolekta ng singaw na arr[0], pagkatapos ito ay ang ibinalik na halaga ng nakaraang loop): 3
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[1]): 3
currentIndex: 2
array: 1,2,3,4,5
---
nagtitipon (Sa ika-1 ng loop, kolekta ng singaw na arr[0], pagkatapos ito ay ang ibinalik na halaga ng nakaraang loop): 6
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[1]): 4
currentIndex: 3
array: 1,2,3,4,5
---
nagtitipon (Sa ika-1 ng loop, kolekta ng singaw na arr[0], pagkatapos ito ay ang ibinalik na halaga ng nakaraang loop): 10
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[1]): 5
currentIndex: 4
array: 1,2,3,4,5
---

 

Ang pagbibigay ng paunang halaga

Na tumutukoy sa pangalawang parameter (initialValue) sa bawasan ang function na ay magiging sanhi initialValue upang maipasa in bilang ang nagtitipon argument sa unang loop.

Tandaan na ang kasalukuyang halaga sa 1st loop ngayon ay nagsisimula sa unang elemento ng array

Nagtatrabaho Halimbawa

  hayaan arr = [1,2,3,4,5];

  arr.reduce(
  (nagtitipon, CurrentValue, currentIndex, array) => {
    console.log(`nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): ${nagtitipon}`);
    console.log(`CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): ${CurrentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`array: ${array}`);
    console.log('---');
    return nagtitipon + CurrentValue;
  }, 0
);

output

nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): 0
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): 1
currentIndex: 0
array: 1,2,3,4,5
---
nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): 1
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): 2
currentIndex: 1
array: 1,2,3,4,5
---
nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): 3
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): 3
currentIndex: 2
array: 1,2,3,4,5
---
nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): 6
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): 4
currentIndex: 3
array: 1,2,3,4,5
---
nagtitipon ( Sa ika-1 ng loop, ito ay ang paunang halaga, pagkatapos ay ang ibinalik na halaga ng nakaraang loop): 10
CurrentValue (Loop sa pamamagitan ng array, simula sa arr[0]): 5
currentIndex: 4
array: 1,2,3,4,5
---