Javascript-taulukko reducRight ()

JavaScript Array reducRight () -menetelmä suorittaa pienennysfunktion matriisin jokaiselle elementille ja soveltaa sitä akkuun.

Menetelmän syntaksi reduceRight()on:

 arr.reduceRight(callback(accumulator, currentValue), initialValue)

Tässä arr on taulukko.

reducRight () -parametrit

reduceRight()Menetelmä vie:

  • takaisinsoitto - toiminto, joka suoritetaan jokaiselle taulukkoelementille. Se vie:
    • akku - Se kerää takaisinsoiton paluuarvot. Se on initialValueensimmäinen puhelu, jos se toimitetaan,
    • currentValue - Nykyinen elementti, joka välitetään matriisista.
  • initialValue (valinnainen) - Arvo, joka välitetään callback()ensimmäisen puhelun yhteydessä. Jos sitä ei anneta, viimeinen elementti toimii ensimmäisen puhelun callback()akuna eikä suorita sitä.

Huomaa:reduceRight() Tyhjälle taulukolle kutsuminen ilman initialValue-arvoa heittää TypeError.

Palautusarvo alkaen reducRight ()

  • Palauttaa matriisin pienentämisen jälkeen saadun arvon.

Huomautuksia :

  • reduceRight() suorittaa annetun arvon jokaiselle arvolle oikealta vasemmalle.
  • reduceRight() ei muuta alkuperäistä taulukkoa.
  • Se on melkein aina turvallisempaa tarjota initialValue.

Esimerkki 1: Matriisin kaikkien arvojen summa

 const numbers = (1, 2, 3, 4, 5, 6); function sum_reducer(accumulator, currentValue) ( return accumulator + currentValue; ) let sum = numbers.reduceRight(sum_reducer); console.log(sum); // 21 // using arrow function let summation = numbers.reduceRight( (accumulator, currentValue) => accumulator + currentValue ); console.log(summation); // 21

Tuotos

 21 21

Esimerkki 2: Numeroiden vähentäminen taulukosta

 const numbers = (50, 300, 20, 100, 1800); // subtract all numbers from last number // since 1st element is called as accumulator rather than currentValue // 1800 - 100 - 20 - 300 - 50 let difference = numbers.reduceRight( (accumulator, currentValue) => accumulator - currentValue ); console.log(difference); // 1330 const expenses = (1800, 2000, 3000, 5000, 500); const salary = 15000; // function that subtracts all array elements from given number // 15000 - 500 - 5000 - 3000 - 2000 - 1800 let remaining = expenses.reduceRight( (accumulator, currentValue) => accumulator - currentValue, salary ); console.log(remaining); // 2700

Tuotos

 1330 2700

Tämä esimerkki selittää selvästi eron alkuperäisen arvon ja alkuperäisen arvon välittymisen välillä.

Esimerkki 3: Luo komposiittitoiminnot

 // create composite functions const composite = (… args) => (initialArg) => args.reduceRight((acc, fn) => fn(acc), initialArg); const sqrt = (value) => Math.sqrt(value); const double = (value) => 2 * value; const newFunc = composite(sqrt, double); // ( 32 * 2 ) ** 0.5 let result = newFunc(32); console.log(result); // 8

Tuotos

 8

Tiedämme, että funktiokoostumus on tapa, jolla yhden funktion tulos siirretään toiselle funktiolle. Suoritus tapahtuu oikealta vasemmalle, joten voimme hyödyntää reduceRight()toimintoa.

Tässä esimerkissä olemme luoneet composite()funktion, joka ottaa mielivaltaisen määrän argumentteja. Tämä funktio palauttaa toisen toiminnon, joka ottaa vastaan initialArgja palauttaa tämän arvon pienennettynä soveltamalla sitä annettuihin funktioihin oikealta vasemmalle.

Suositeltava lukeminen: JavaScript-matriisin vähennys ()

Mielenkiintoisia artikkeleita...