Tiếp tục với Bài 10 – Các phương thức mảng trong JavaScript. Đây là những công cụ cực kỳ mạnh để xử lý dữ liệu trong mảng một cách ngắn gọn, dễ đọc và hiệu quả.
1. map() – Ánh xạ từng phần tử
Trả về một mảng mới với các giá trị đã được xử lý.
let numbers = [1, 2, 3]
let doubled = numbers.map(function (num) {
return num * 2
})
console.log(doubled) // [2, 4, 6]
2. filter() – Lọc theo điều kiện
Trả về mảng mới gồm các phần tử thoả điều kiện.
let numbers = [1, 4, 7, 2, 9]
let evens = numbers.filter(function (num) {
return num % 2 === 0
})
console.log(evens) // [4, 2]
3. find() – Tìm phần tử đầu tiên
Trả về phần tử đầu tiên thoả điều kiện, nếu không có → undefined.
let users = [
{ name: "An", age: 20 },
{ name: "Bình", age: 25 }
]
let result = users.find(function (user) {
return user.age > 21
})
console.log(result) // { name: "Bình", age: 25 }
4. reduce() – Tính gộp (cộng, nhân, tổng hợp)
Dùng để rút gọn mảng thành một giá trị duy nhất (tổng, chuỗi, object, v.v.)
let nums = [1, 2, 3, 4]
let total = nums.reduce(function (acc, val) {
return acc + val
}, 0)
console.log(total) // 10
acc: giá trị tích lũyval: phần tử hiện tại0: giá trị khởi đầu
5. Tổng hợp so sánh
| Hàm | Trả về | Dùng khi nào |
|---|---|---|
map() | Mảng mới | Biến đổi từng phần tử |
filter() | Mảng mới | Chọn ra phần tử thỏa điều kiện |
find() | Phần tử đầu tiên | Tìm phần tử thỏa điều kiện |
reduce() | Một giá trị duy nhất | Tổng hợp toàn bộ giá trị trong mảng |
6. Giao diện học (code + output)
| Code ví dụ | Kết quả |
|---|---|
[1,2,3].map(x => x*2) | [2, 4, 6] |
[1,2,3,4].filter(x => x % 2 === 0) | [2, 4] |
[5,10,15].reduce((a,b)=>a+b,0) | 30 |
Tóm tắt bài 10
Bạn đã học:
- Dùng
map()để tạo mảng mới từ mảng cũ - Dùng
filter()để lọc phần tử thỏa điều kiện - Dùng
find()để lấy phần tử đầu tiên phù hợp - Dùng
reduce()để tổng hợp dữ liệu từ mảng
Bài tập
- Tăng gấp đôi các số
[2, 4, 6]bằngmap() - Lọc các số chẵn từ
[1, 3, 4, 8, 9]bằngfilter() - Tìm user có
age = 18trong danh sách - Tính tổng số từ
[10, 20, 30]bằngreduce()

Thảo luận