117 of 264 menu

Phương thức flatMap

Phương thức flatMap trả về một mảng mới, được tạo ra sau khi áp dụng callback được chỉ định trong tham số của phương thức vào từng phần tử của mảng ban đầu. Thoạt nhìn, phương thức flatMap giống với phương thức map, nhưng điểm khác biệt chính của nó là luôn trả về một mảng một chiều.

Cú pháp

let newArray = mảng.flatMap(hàm);

Ví dụ

Hãy lấy một mảng mới, sử dụng phương thức flatMap:

let arr = ['a', 'b', 'c']; let res = arr.flatMap(function(elem) { return elem + '!'; }); console.log(res);

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

['a!', 'b!', 'c!']

Ví dụ

Hãy lấy một mảng mới từ mảng ban đầu gồm các số:

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

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

[3, 4, 5, 6, 7]

Ví dụ

Hãy thử áp dụng phương thức flatMap vào một mảng có cấp độ lồng nhau đầu tiên:

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

Sau khi thực thi mã chúng ta sẽ thấy rằng các điều kiện của hàm đã được áp dụng vào mảng con, coi nó như một phần tử duy nhất. Do đó, việc gọi phương thức này trên các mảng lồng nhau là vô nghĩa:

[3, 4, 5, '4,52']

Ví dụ

Nếu chúng ta muốn không phải bận tâm về cấp độ lồng nhau, mà hợp nhất toàn bộ mảng, thì hãy sử dụng tham số Infinity:

let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]]; let res = arr.flatMap(Infinity); console.log(res);

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

[ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' ]

Ví dụ

Hãy áp dụng hai phương thức vào mảng: flatMapmap, và trong tham số của cả hai phương thức sẽ chỉ định một hàm, biến mảng thành mảng hai chiều:

let arr = [1, 2, 3, 4, 5, 6]; let res1 = arr.map(elem => [elem * 3]); let res2 = arr.flatMap(elem => [elem * 3]); console.log('phương thức map', res1); console.log('phương thức flatMap', res2);

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

'phương thức map' [[3], [6], [9], [12], [15], [18]] 'phương thức flatMap' [3, 6, 9, 12, 15, 18]

Xem thêm

  • phương thức flat,
    phương thức trả về mảng từ các mảng con
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