Cơ bảneducational

Mảng (Array) trong JavaScript: Các phương thức cần biết 2026

8 phút đọc15 lượt xem
#javascript#array#mảng#map#filter#reduce#es6

Mảng (Array) trong JavaScript: Các phương thức cần biết 2026

Trong lập trình JavaScript, rất hiếm khi bạn làm việc với một giá trị đơn lẻ. Hầu hết trường hợp thực tế đều liên quan đến tập hợp dữ liệu — danh sách sản phẩm, mảng điểm số, kết quả từ API. Đó là lúc Array (mảng) phát huy vai trò.

Bài này hướng dẫn toàn diện Array trong JavaScript — từ cú pháp cơ bản đến các phương thức quan trọng như map, filter, reduce.

Array là gì?

Array là tập hợp dữ liệu có thứ tự, truy cập qua index (bắt đầu từ 0), có thể chứa nhiều kiểu dữ liệu khác nhau.

const fruits = ["táo", "chuối", "xoài"];
const numbers = [1, 2, 3, 4, 5];
const mixed = [1, "hello", true, null, { name: "An" }];

// Truy cập phần tử
console.log(fruits[0]);               // "táo"
console.log(fruits[fruits.length - 1]); // "xoài" — phần tử cuối

Thêm và xóa phần tử

push() và pop() — Thao tác ở cuối

const arr = ["a", "b", "c"];

arr.push("d");       // Thêm vào cuối
console.log(arr);    // ["a", "b", "c", "d"]

const last = arr.pop(); // Xóa và trả về phần tử cuối
console.log(last);      // "d"
console.log(arr);       // ["a", "b", "c"]

unshift() và shift() — Thao tác ở đầu

const arr = ["b", "c"];

arr.unshift("a");    // Thêm vào đầu
console.log(arr);    // ["a", "b", "c"]

const first = arr.shift(); // Xóa và trả về phần tử đầu
console.log(first);        // "a"

splice() — Thêm/xóa linh hoạt

const arr = ["a", "b", "c", "d"];

arr.splice(1, 2);          // Xóa 2 phần tử từ index 1
console.log(arr);          // ["a", "d"]

arr.splice(1, 0, "X", "Y"); // Chèn không xóa
console.log(arr);           // ["a", "X", "Y", "d"]

Tìm kiếm trong Array

const nums = [10, 20, 30, 20, 50];

console.log(nums.indexOf(20));     // 1 (lần xuất hiện đầu)
console.log(nums.lastIndexOf(20)); // 3 (lần xuất hiện cuối)
console.log(nums.includes(30));    // true

// find — phần tử đầu tiên thỏa điều kiện
const found = nums.find(n => n > 25);
console.log(found); // 30

// findIndex — index của phần tử đầu tiên thỏa điều kiện
const idx = nums.findIndex(n => n > 25);
console.log(idx); // 2

forEach — Lặp qua từng phần tử

const fruits = ["táo", "chuối", "xoài"];

fruits.forEach((fruit, index) => {
    console.log(`${index}: ${fruit}`);
});
// 0: táo
// 1: chuối
// 2: xoài

map() — Biến đổi mảng

map() tạo ra array mới bằng cách áp dụng hàm lên từng phần tử, không thay đổi array gốc:

const numbers = [1, 2, 3, 4, 5];

const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

// Biến đổi từ chuỗi thành object
const names = ["An", "Bình", "Cường"];
const people = names.map(name => ({
    name: name,
    length: name.length
}));
// [{ name: "An", length: 2 }, ...]

filter() — Lọc phần tử

filter() trả về array mới chỉ chứa phần tử thỏa điều kiện:

const scores = [45, 72, 88, 35, 91, 60];

const passing = scores.filter(score => score >= 70);
console.log(passing); // [72, 88, 91]

// Kết hợp map và filter
const diem_gioi_lam_tron = scores
    .filter(s => s >= 70)
    .map(s => Math.round(s / 10) * 10);
// [70, 90, 90]

reduce() — Tích lũy thành một giá trị

const numbers = [1, 2, 3, 4, 5];

// Tính tổng
const sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15

// Tính tích
const product = numbers.reduce((acc, cur) => acc * cur, 1);
console.log(product); // 120

// Tìm giá trị lớn nhất
const max = numbers.reduce((acc, cur) => cur > acc ? cur : acc);
console.log(max); // 5

Sắp xếp Array

const nums = [3, 1, 4, 1, 5, 9, 2, 6];

// Sắp xếp tăng dần — PHẢI dùng callback với số
nums.sort((a, b) => a - b);
console.log(nums); // [1, 1, 2, 3, 4, 5, 6, 9]

// Sắp xếp giảm dần
nums.sort((a, b) => b - a);

// Sắp xếp chuỗi
const fruits = ["chuối", "táo", "xoài"];
fruits.sort(); // Theo thứ tự UTF-16

slice() — Cắt Array (không thay đổi gốc)

const arr = ["a", "b", "c", "d", "e"];

console.log(arr.slice(1, 4)); // ["b", "c", "d"]
console.log(arr.slice(2));    // ["c", "d", "e"]
console.log(arr.slice(-2));   // ["d", "e"]
console.log(arr);             // ["a", "b", "c", "d", "e"] — không đổi

Spread và Destructuring

// Spread: gộp array
const a = [1, 2, 3];
const b = [4, 5, 6];
const merged = [...a, ...b]; // [1, 2, 3, 4, 5, 6]
const copy = [...a];          // Sao chép

// Destructuring: gán biến
const [first, second, ...rest] = [10, 20, 30, 40, 50];
console.log(first); // 10
console.log(rest);  // [30, 40, 50]

join() và split()

const words = ["Xin", "chào", "Việt", "Nam"];
console.log(words.join(" ")); // "Xin chào Việt Nam"

// Ngược lại: chuỗi → array
const str = "táo,chuối,xoài";
const arr = str.split(","); // ["táo", "chuối", "xoài"]

Bảng tổng hợp phương thức Array

Phương thứcMục đíchThay đổi gốc?
push(x)Thêm vào cuối
pop()Xóa phần tử cuối
unshift(x)Thêm vào đầu
shift()Xóa phần tử đầu
splice(i, n)Thêm/xóa linh hoạt
slice(i, j)Cắt arrayKhông
map(fn)Biến đổi từng phần tửKhông
filter(fn)Lọc phần tửKhông
reduce(fn)Tích lũy thành 1 giá trịKhông
forEach(fn)Lặp qua từng phần tửKhông
find(fn)Tìm phần tử đầu thỏa ĐKKhông
includes(x)Kiểm tra tồn tạiKhông
sort(fn)Sắp xếp
join(sep)Ghép thành chuỗiKhông

Kết luận

Array là cấu trúc dữ liệu bạn sẽ dùng nhiều nhất trong JavaScript. Nắm vững map, filter, reduce — ba phương thức quan trọng nhất — sẽ giúp code của bạn gọn hơn và dễ đọc hơn đáng kể so với vòng lặp for thông thường.

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

The Complete JavaScript Course 2026: From Zero to Expert!

Khóa học JavaScript toàn diện nhất từ cơ bản đến nâng cao.

4.7
Xem khóa học →

React - The Complete Guide (incl. React Router & Redux)

Làm chủ React.js với các dự án thực tế, hooks, Redux.

4.6
Xem khóa học →

Node.js, Express, MongoDB & More: The Complete Bootcamp

Backend với Node.js: REST API, authentication, MongoDB.

4.7
Xem khóa học →

*Đây là liên kết liên kết (affiliate link). Chúng tôi có thể nhận hoa hồng nếu bạn mua khóa học qua liên kết này.