Kaedah JavaScript Array lessRight () melaksanakan fungsi pengurang pada setiap elemen larik dan menerapkannya pada penumpuk.
Sintaks reduceRight()
kaedahnya adalah:
arr.reduceRight(callback(accumulator, currentValue), initialValue)
Di sini, arr adalah tatasusunan.
mengurangkanRight () Parameter
The reduceRight()
Cara mengambil masa dalam:
- panggilan balik - Fungsi untuk dilaksanakan pada setiap elemen array. Ia memerlukan:
- penumpuk - Ia mengumpulkan nilai pulangan panggilan balik. Ia adalah
initialValue
untuk panggilan pertama jika dibekalkan, - currentValue - Elemen semasa yang dihantar dari tatasusunan.
- penumpuk - Ia mengumpulkan nilai pulangan panggilan balik. Ia adalah
- initialValue (pilihan) - Nilai yang akan dihantar
callback()
pada panggilan pertama. Sekiranya tidak disediakan, elemen terakhir bertindak sebagai penumpuk pada panggilan pertama dancallback()
tidak akan melaksanakannya.
Catatan: Memanggil reduceRight()
array kosong tanpa nilai awal akan melemparkan TypeError
.
Nilai pulangan dari lessRight ()
- Mengembalikan nilai yang dihasilkan setelah mengurangkan array.
Catatan :
reduceRight()
melaksanakan fungsi yang diberikan untuk setiap nilai dari kanan ke kiri.reduceRight()
tidak mengubah susunan asal.- Hampir selalu lebih selamat untuk disediakan
initialValue
.
Contoh 1: Jumlah Semua Nilai Array
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
Pengeluaran
21 21
Contoh 2: Menolak Nombor dalam Array
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
Pengeluaran
1330 2700
Contoh ini dengan jelas menerangkan perbezaan antara melewati Nilai awal dan tidak meneruskan Nilai awal.
Contoh 3: Buat Fungsi Komposit
// 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
Pengeluaran
8
Kita tahu bahawa komposisi fungsi adalah cara di mana hasil dari satu fungsi diteruskan ke fungsi yang lain. Pelaksanaannya dilakukan dari kanan ke kiri, sehingga kita dapat memanfaatkan reduceRight()
fungsinya.
Dalam contoh ini, kami telah membuat composite()
fungsi yang memerlukan sejumlah argumen sewenang-wenangnya. Fungsi ini mengembalikan fungsi lain yang mengambil initialArg
dan mengembalikan nilai ini dikurangkan dengan menerapkannya terhadap fungsi yang diberikan dari kanan ke kiri.
Bacaan yang Disarankan: Array JavaScript mengurangkan ()