Bài 15: Phương thức mảng – map, filter, find, reduce

yanyan

By yanyan

Cập nhật Tháng 7 19, 2025

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ũy
  • val: phần tử hiện tại
  • 0: giá trị khởi đầu

5. Tổng hợp so sánh

HàmTrả vềDùng khi nào
map()Mảng mớiBiến đổi từng phần tử
filter()Mảng mớiChọn ra phần tử thỏa điều kiện
find()Phần tử đầu tiênTìm phần tử thỏa điều kiện
reduce()Một giá trị duy nhấtTổ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

  1. Tăng gấp đôi các số [2, 4, 6] bằng map()
  2. Lọc các số chẵn từ [1, 3, 4, 8, 9] bằng filter()
  3. Tìm user có age = 18 trong danh sách
  4. Tính tổng số từ [10, 20, 30] bằng reduce()

📂 Chuyên mục:

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.