Giải thích các phương thức mảng JavaScript: Hướng dẫn toàn diện với ví dụ (2026)

Trong JavaScript, mảng là một trong những cấu trúc dữ liệu cơ bản nhất. Hiểu rõ phương thức mảng cho phép bạn viết mã sạch hơn, hiệu quả hơn và dễ bảo trì hơn.
Bài viết này hướng dẫn bao gồm các phương thức mảng JavaScript quan trọng nhất với các ví dụ thực tế.
1. Thêm và Xóa Phép Tính
Đây là các hoạt động cơ bản nhất khi làm việc với mảng.
push() – Thêm vào cuối
let arr = [1, 2];
arr.push(3); // [1, 2, 3]pop() – Xóa từ cuối
arr.pop(); // [1, 2]unshift() – Thêm vào đầu
arr.unshift(0); // [0, 1, 2]shift() – Xóa từ đầu
arr.shift(); // [1, 2]👉 Thường được sử dụng khi triển khai các ngăn xếp hoặc hàng đợi.
2. Lặp và Chuyển đổi Mảng
Đây là các phương thức quan trọng nhất trong phát triển thực tế.
map() – Tạo một mảng mới
let numbers = [1, 2, 3];
let doubled = numbers.map(x => x * 2);
// [2, 4, 6]filter() – Lọc các phần tử
let even = numbers.filter(x => x % 2 === 0);
// [2]reduce() – Tính tổng các giá trị
let sum = numbers.reduce((a, b) => a + b, 0);
// 6forEach() – Lặp qua các phần tử
numbers.forEach(x => console.log(x));👉 Ba phương thức quan trọng nhất: map – filter – reduce
3. Tìm kiếm trong Mảng
find() – Trả về phần tử đầu tiên khớp
numbers.find(x => x > 1); // 2findIndex() – Trả về chỉ số
numbers.findIndex(x => x > 1); // 1includes() – Kiểm tra tồn tại
numbers.includes(2); // trueindexOf() – Tìm vị trí
numbers.indexOf(2); // 14. Chỉnh Sửa Mảng
slice() – Lấy một phần (không thay đổi)
numbers.slice(0, 2);splice() – Chỉnh sửa mảng (thay đổi)
numbers.splice(1, 1); // xóa 1 phần tửconcat() – Gộp mảng
numbers.concat([4, 5]);5. Sắp Xếp và Ngược
sort()
numbers.sort((a, b) => a - b);reverse()
numbers.reverse();6. Chuyển đổi Mảng
join()
numbers.join(", "); // "1, 2, 3"toString()
numbers.toString();7. Phương Thức Mới (ES6+)
flat()
[1, [2, 3]].flat(); // [1, 2, 3]flatMap()
let arr = [[1, 2], [3, 4]];
arr.flatMap(x => x); // [1, 2, 3, 4]flatMap()
let arr = [[1, 2], [3, 4]];
arr.flatMap(x => x); // [1, 2, 3, 4]flat()
let arr = [1, [2, 3]];
arr.flat(); // [1, 2, 3]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(2); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
let arr = [1, [2, [3, 4]]];
arr.flat(Infinity); // [1, 2, 3, 4]flat()
<[1, 2].flatMap(x => [x, x * 2]);at()
numbers.at(-1); // element cuối cùngNên Sử Dụng Phương Thức Nào Khi Nào?
map() → Chuyển đổi dữ liệu
filter() → Chọn các mục cụ thể
reduce() → Tính tổng hoặc tổng kết
find() → Lấy một mục phù hợp duy nhất
forEach() → Vòng lặp mà không trả về dữ liệu
