Chuyển đến nội dung chính
Mô-đun 6 · Bài học 1 trong tổng số 421/32 trong khóa học~10 min
Bài học theo mô-đun (1/4)

bản đồ và bộ lọc

Hai phương thức thiết yếu: chúng chuyển đổi một mảng thành một mảng mới mà không làm thay đổi mảng gốc.

map: biến đổi từng phần tử

Nó nhận một hàm, áp dụng nó cho từng phần tử và trả về một mảng có cùng độ dài với kết quả.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

Bản gốc vẫn còn nguyên:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: chọn một tập hợp con

Nó cần một vị ngữ (một hàm trả về true/false). Nó chỉ giữ lại những phần tử mà vị ngữ là đúng.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

Kết hợp cả hai

Đường ống cổ điển: lọc, sau đó chuyển đổi.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Hãy thử nó

tập thể dục#js.m6.l1.e1
Nỗ lực: 0Đang tải…

Xác định `vat(price, rate)`: cho một mảng số và tỷ lệ (ví dụ: 0,22), trả về một mảng có giá tăng theo VAT. Sử dụng bản đồ.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

giá.map((p) => p * (1 + tỷ lệ))

Giải pháp khả dụng sau 3 lần thử

Xem lại bài tập

tập thể dục#js.m6.l1.e2
Nỗ lực: 0Đang tải…

Xác định `adultNames(people)`: bạn nhận được một mảng đối tượng { name, age } và trả về mảng tên của những người có độ tuổi >= 18. Sử dụng bộ lọc + bản đồ.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Chuỗi: .filter(...).map((p) => p.name)

Giải pháp khả dụng sau 3 lần thử