Javascript Array ReduceRight ()

Phương thức JavaScript Array ReduceRight () thực thi một hàm giảm thiểu trên mỗi phần tử của mảng và áp dụng nó với một bộ tích lũy.

Cú pháp của reduceRight()phương thức là:

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

Ở đây, arr là một mảng.

Tham số ReduceRight ()

Các reduceRight()phương pháp có trong:

  • callback - Hàm thực thi trên từng phần tử mảng. Nó có:
    • bộ tích lũy - Nó tích lũy các giá trị trả về của lệnh gọi lại. Nó initialValuedành cho cuộc gọi đầu tiên nếu được cung cấp,
    • currentValue - Phần tử hiện tại đang được truyền từ mảng.
  • InitialValue (tùy chọn) - Một giá trị sẽ được chuyển cho callback()lần gọi đầu tiên. Nếu không được cung cấp, phần tử cuối cùng hoạt động như bộ tích lũy trong lần gọi đầu tiên và callback()sẽ không thực thi trên đó.

Lưu ý: Việc gọi reduceRight()trên một mảng trống không có giá trị khởi tạo sẽ được ném ra TypeError.

Giá trị trả về từ ReduceRight ()

  • Trả về giá trị kết quả sau khi giảm mảng.

Ghi chú :

  • reduceRight() thực hiện chức năng đã cho cho mỗi giá trị từ phải sang trái.
  • reduceRight() không thay đổi mảng ban đầu.
  • Nó hầu như luôn luôn an toàn hơn để cung cấp initialValue.

Ví dụ 1: Tổng tất cả các giá trị của mảng

 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

Đầu ra

 21 21

Ví dụ 2: Trừ các số trong mảng

 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

Đầu ra

 1330 2700

Ví dụ này giải thích rõ ràng sự khác biệt giữa việc chuyển giá trị ban đầu và không truyền giá trị ban đầu.

Ví dụ 3: Tạo các hàm tổng hợp

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

Đầu ra

 số 8

Chúng ta biết rằng thành phần hàm là cách thức mà kết quả từ một hàm được chuyển sang một hàm khác. Việc thực thi diễn ra từ phải sang trái, vì vậy chúng ta có thể tận dụng reduceRight()chức năng này.

Trong ví dụ này, chúng ta đã tạo một composite()hàm nhận vào một số lượng đối số tùy ý. Hàm này trả về một hàm khác nhận vào initialArgvà trả về giá trị này đã giảm bằng cách áp dụng nó đối với các hàm đã cho từ phải sang trái.

Đề xuất đọc: Mảng JavaScript giảm ()

thú vị bài viết...