Javascript masīvs reducRight ()

Metode JavaScript Array reducRight () izpilda reduktora funkciju katram masīva elementam un pielieto to pret akumulatoru.

Metodes sintakse reduceRight()ir šāda:

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

Lūk, arr ir masīvs.

reducRight () parametri

reduceRight()Metode ņem in:

  • atzvanīšana - funkcija, kas jāizpilda katram masīva elementam. Tas aizņem:
    • akumulators - tas uzkrāj atzvanīšanas atgriešanās vērtības. Tas ir initialValueparedzēts pirmajam zvanam, ja tas tiek piegādāts,
    • currentValue - pašreizējais elements, kas tiek nodots no masīva.
  • sākotnējā vērtība (pēc izvēles) - vērtība, kas tiks pārsūtīta callback()uz pirmo zvanu. Ja tas nav norādīts, pēdējais elements darbojas kā akumulators pirmajā zvanā un callback()to neizpilda.

Piezīme. Izsaucot reduceRight()tukšu masīvu bez sākotnējās vērtības, tiks izmesti TypeError.

Atgriezeniskā vērtība no reducRight ()

  • Atgriež vērtību, kas iegūta pēc masīva samazināšanas.

Piezīmes :

  • reduceRight() izpilda doto funkciju katrai vērtībai no labās uz kreiso pusi.
  • reduceRight() nemaina sākotnējo masīvu.
  • Gandrīz vienmēr ir drošāk to nodrošināt initialValue.

1. piemērs: visu masīva vērtību 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

Rezultāts

 21 21

2. piemērs: skaitļu atņemšana masīvā

 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

Rezultāts

 1330 2700

Šis piemērs skaidri izskaidro atšķirību starp sākotnējās vērtības un sākotnējās vērtības nenokļūšanu.

3. piemērs: salikto funkciju izveide

 // 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

Rezultāts

 8

Mēs zinām, ka funkciju sastāvs ir veids, kā vienas funkcijas rezultāts tiek nodots citai funkcijai. Izpilde notiek no labās uz kreiso pusi, tāpēc mēs varam izmantot reduceRight()funkcijas priekšrocības .

Šajā piemērā mēs esam izveidojuši composite()funkciju, kas uzņem patvaļīgu skaitu argumentu. Šī funkcija atgriež vēl vienu funkciju, kas uzņem initialArgun atgriež šo vērtību, samazinot to, piemērojot to pret dotajām funkcijām no labās uz kreiso.

Ieteicams lasīt: JavaScript masīva samazināšana ()

Interesanti raksti...