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ả.
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:
numeri; // [1, 2, 3, 4] ← unchangedfilter: 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.
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.
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ó
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 đồ.
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
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 đồ.
Hiển thị gợi ý
Chuỗi: .filter(...).map((p) => p.name)
Giải pháp khả dụng sau 3 lần thử