108 of 264 menu

Phương thức reduce

Phương thức reduce thu gọn một mảng thành một giá trị duy nhất (reduce). Ví dụ, với phương thức này có thể dễ dàng tìm tổng các phần tử của mảng (tức là mảng sẽ được thu gọn về một giá trị - tổng các phần tử).

Tham số đầu tiên của phương thức reduce nhận một hàm, hàm này sẽ được thực thi tuần tự cho từng phần tử của mảng, bắt đầu từ phần tử đầu tiên. Vào hàm này có thể truyền 4 tham số. Nếu các tham số này tồn tại (chúng không bắt buộc), thì vào tham số đầu tiên sẽ tự động được đưa vào kết quả trung gian, vào tham số thứ hai là phần tử của mảng, vào tham số thứ ba - số thứ tự của nó trong mảng (chỉ số), và vào tham số thứ tư - chính mảng đó.

Kết quả trung gian - là một biến, trong đó sẽ tích lũy giá trị mà phương thức reduce sẽ trả về khi duyệt qua tất cả các phần tử của mảng. Ví dụ, vào đó có thể tích lũy tuần tự tổng các phần tử của mảng: đầu tiên đặt phần tử đầu tiên, ở lần lặp tiếp theo sẽ là tổng của phần tử thứ nhất và thứ hai, ở lần lặp tiếp theo - tổng của phần tử thứ nhất, thứ hai và thứ ba. Và cứ thế, cho đến khi mảng kết thúc. Hàm mà reduce nhận, phải trả về giá trị mới của kết quả trung gian.

Tham số thứ hai của phương thức reduce chỉ định giá trị khởi đầu của kết quả trung gian. Nếu không chỉ định nó, thì nó sẽ bằng phần tử đầu tiên của mảng, và việc xử lý các phần tử sẽ bắt đầu từ phần tử thứ hai.

Cú pháp

mảng.reduce(function(kết quả trung gian, phần tử, chỉ số, mảng) { return kết quả trung gian mới; }, giá trị khởi đầu);

Ví dụ

Tìm tổng các phần tử của mảng:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) { return sum + elem; }, 0); console.log(res);

Kết quả thực thi mã:

21

Ví dụ

Hãy tìm tổng tất cả các số dương của mảng:

let arr = [1, -2, -3, 4, 5, -6]; let res = arr.reduce(function(sum, elem) { if (elem >= 0) { return sum + elem; } else { return sum; } }, 0); console.log(res);

Kết quả thực thi mã:

10

Xem thêm

  • phương thức reduceRight,
    thực hiện một thao tác tương tự
  • phương thức filter,
    cho phép lọc các phần tử của mảng
  • phương thức mapforEach,
    cho phép áp dụng một hàm cho từng phần tử của mảng
  • phương thức someevery,
    thực hiện kiểm tra mảng
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối