Mảng JavaScript : Tìm hiểu về chức năng giảm

cú pháp

arr.reduce(callbackFunction, [initialValue])

Điều gì làm giảm làm?

Giảm là một chức năng mà vòng qua một mảng.

Hoạt động có thể được thực hiện trên các mảng thông qua một hàm callback.

Vào cuối của các hoạt động trên mảng, giảm lợi nhuận một giá trị duy nhất

Giảm thể được sử dụng, ví dụ, để tính tổng giỏ hàng

Thí dụ

  hãy arr = [1,2,3,4,5];
  arr.reduce( (ắc, currentValue, currentIndex, mảng) => { 
      //một số hoạt động;
      Trả lại cái gì;
  });

 

Chức năng gọi lại

Các hàm callback được gọi cho mỗi phần tử trong mảng, đi qua trong 4 đối số được thông qua bằng chức năng giảm.

những 4 lập luận sau đó có thể được sử dụng trong hàm callback của chúng tôi.

Có bốn đối số

  1. ắc – Yếu tố đầu tiên của mảng trên vòng đầu tiên hoặc giá trị ban đầu nếu được cung cấp. Sau đó, giá trị trả về của vòng lặp trước.
  2. currentValue – Yếu tố hiện tại trong mảng. Bắt đầu từ phần tử thứ hai trong ví dụ mảng. arr[1], khi lập luận giá trị ban đầu không được thông qua. Nếu đối số giá trị ban đầu được truyền giá trị thì hiện nay bắt đầu từ yếu tố 1 trong arr mảng[0].
  3. currentIndex – Chỉ số của phần tử hiện tại.
  4. mảng – Toàn bộ mảng.

làm việc Ví dụ

hãy arr = [1,2,3,4,5];

arr.reduce(
  (ắc, currentValue, currentIndex, mảng) => {
    console.log('ắc (Trên vòng 1, ắc là arr[0], sau đó nó là giá trị trả về của vòng lặp trước): ${ắc}');
    console.log('currentValue (Vòng qua mảng, bắt đầu từ arr[1]): ${currentValue}');
    console.log('currentIndex: ${currentIndex}');
    console.log('mảng: ${mảng}');
    console.log('---');
    trở lại ắc + currentValue;
  }
);

sản lượng

ắc (Trên vòng 1, ắc là arr[0], sau đó nó là giá trị trả về của vòng lặp trước): 1
currentValue (Vòng qua mảng, bắt đầu từ arr[1]): 2
currentIndex: 1
mảng: 1,2,3,4,5
---
ắc (Trên vòng 1, ắc là arr[0], sau đó nó là giá trị trả về của vòng lặp trước): 3
currentValue (Vòng qua mảng, bắt đầu từ arr[1]): 3
currentIndex: 2
mảng: 1,2,3,4,5
---
ắc (Trên vòng 1, ắc là arr[0], sau đó nó là giá trị trả về của vòng lặp trước): 6
currentValue (Vòng qua mảng, bắt đầu từ arr[1]): 4
currentIndex: 3
mảng: 1,2,3,4,5
---
ắc (Trên vòng 1, ắc là arr[0], sau đó nó là giá trị trả về của vòng lặp trước): 10
currentValue (Vòng qua mảng, bắt đầu từ arr[1]): 5
currentIndex: 4
mảng: 1,2,3,4,5
---

 

Cung cấp các giá trị ban đầu

Xác định tham số thứ hai (giá trị ban đầu) trong hàm giảm sẽ gây ra initialValue để được thông qua tại như là đối số ắc trên vòng đầu tiên.

Lưu ý rằng giá trị hiện hành về vòng 1 giờ bắt đầu từ phần tử đầu tiên của mảng

làm việc Ví dụ

  hãy arr = [1,2,3,4,5];

  arr.reduce(
  (ắc, currentValue, currentIndex, mảng) => {
    console.log('ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): ${ắc}');
    console.log('currentValue (Vòng qua mảng, bắt đầu từ arr[0]): ${currentValue}');
    console.log('currentIndex: ${currentIndex}');
    console.log('mảng: ${mảng}');
    console.log('---');
    trở lại ắc + currentValue;
  }, 0
);

sản lượng

ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): 0
currentValue (Vòng qua mảng, bắt đầu từ arr[0]): 1
currentIndex: 0
mảng: 1,2,3,4,5
---
ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): 1
currentValue (Vòng qua mảng, bắt đầu từ arr[0]): 2
currentIndex: 1
mảng: 1,2,3,4,5
---
ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): 3
currentValue (Vòng qua mảng, bắt đầu từ arr[0]): 3
currentIndex: 2
mảng: 1,2,3,4,5
---
ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): 6
currentValue (Vòng qua mảng, bắt đầu từ arr[0]): 4
currentIndex: 3
mảng: 1,2,3,4,5
---
ắc ( Trên vòng 1, đây là giá trị ban đầu, thì giá trị trả về của vòng lặp trước): 10
currentValue (Vòng qua mảng, bắt đầu từ arr[0]): 5
currentIndex: 4
mảng: 1,2,3,4,5
---                                                                 

Gửi phản hồi