0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

🏆 Nắm vững Mảng JavaScript — Từ Cơ Bản đến Hiện Đại ES6+

Đăng vào 2 tuần trước

• 4 phút đọc

🏆 Nắm vững Mảng JavaScript — Từ Cơ Bản đến Hiện Đại ES6+

Mảng là một trong những nền tảng quan trọng nhất trong JavaScript. Chúng cho phép chúng ta lưu trữ, tổ chức và biến đổi dữ liệu một cách hiệu quả.

📘 Giới thiệu về mảng

Mảng trong JavaScript là một đối tượng cho phép lưu trữ nhiều giá trị trong một biến duy nhất. Chúng rất linh hoạt và có thể chứa bất kỳ loại dữ liệu nào, bao gồm cả các mảng khác.

📑 Mục lục


🧺 1. Tạo mảng

Để tạo ra một mảng trong JavaScript, bạn có thể sử dụng cú pháp sau:

javascript Copy
const fruits = ["apple", "banana", "orange"];
const numbers = new Array(1, 2, 3);

✍️ 2. Truy cập và Cập nhật phần tử

Truy cập phần tử trong mảng bằng chỉ số (index) bắt đầu từ 0. Ví dụ:

javascript Copy
const colors = ["red", "green", "blue"];  
console.log(colors[0]); // red
colors[1] = "yellow";  
console.log(colors); // ["red", "yellow", "blue"]

🧪 3. Phương thức biến đổi (thay đổi mảng gốc)

Mảng trong JavaScript có một số phương thức cho phép thay đổi trực tiếp nó:

javascript Copy
const arr = [1, 2, 3];
arr.push(4); // Thêm 4 vào cuối mảng
arr.pop(); // Xóa phần tử cuối
arr.shift(); // Xóa phần tử đầu
arr.unshift(0); // Thêm 0 vào đầu mảng
arr.splice(1, 0, 99); // Chèn 99 vào vị trí thứ 1
arr.reverse(); // Đảo ngược mảng
arr.sort(); // Sắp xếp mảng

🛡️ 4. Phương thức không biến đổi (trả về mảng mới)

Ngoài các phương thức thay đổi mảng gốc, có một số phương thức không thay đổi mảng mà chúng ta có thể sử dụng:

javascript Copy
const numbers = [3, 7, 10, 15, 20, 25];
const doubled = numbers.map(n => n * 2); // Nhân đôi mỗi phần tử
const greater10 = numbers.filter(n => n >= 10); // Lọc các phần tử lớn hơn hoặc bằng 10
const sum = numbers.reduce((acc, cur) => acc + cur, 0); // Tính tổng các phần tử

🧩 5. Phân tách mảng (Destructuring)

Phân tách mảng cho phép bạn lấy các giá trị từ mảng và gán chúng cho các biến:

javascript Copy
const [a, b] = ["red", "green"];
console.log(a, b); // red green

🌀 6. Toán tử spread trong mảng

Toán tử spread (...) cho phép bạn mở rộng mảng hoặc sao chép mảng:

javascript Copy
const fruits = ["apple", "banana"];
const moreFruits = ["orange", "grape"];
const allFruits = [...fruits, ...moreFruits]; // Kết hợp mảng

🗂️ 7. Các Thực tiễn Tốt nhất

  • Sử dụng phương thức không thay đổi: Khi có thể, hãy sử dụng các phương thức không thay đổi để tránh ảnh hưởng đến mảng gốc.
  • Tránh sử dụng các chỉ số không hợp lệ: Đảm bảo rằng bạn không truy cập vào các chỉ số không tồn tại trong mảng.

⚠️ 8. Những Cạm bẫy Thường gặp

  • Lỗi khi sử dụng pop() trên mảng rỗng: Điều này sẽ trả về undefined.
  • Sử dụng splice() mà không hiểu cách hoạt động: Có thể gây ra việc mất dữ liệu quan trọng nếu không cẩn thận.

🚀 9. Mẹo Hiệu suất

  • Sử dụng forEach thay vì for khi không cần chỉ số: Điều này có thể giúp mã của bạn dễ đọc hơn.
  • Tránh sử dụng map nếu không cần tạo mảng mới: Sử dụng for hoặc forEach nếu bạn chỉ cần thực hiện hành động trên từng phần tử.

🔧 10. Giải quyết sự cố

Khi gặp vấn đề với mảng, hãy kiểm tra lại các chỉ số và đảm bảo rằng bạn đang làm việc với mảng đúng cách. Sử dụng console.log() để kiểm tra giá trị của mảng tại các thời điểm khác nhau.

📑 Tóm tắt nhanh

Phương thức / Khái niệm Mô tả Ví dụ
push() Thêm vào cuối [1].push(2)[1,2]
pop() Xóa phần tử cuối [1,2].pop()[1]
shift() Xóa phần tử đầu [1,2].shift()[2]
unshift() Thêm vào đầu [2].unshift(1)[1,2]
splice() Chèn/xóa [1,2,3].splice(1,1)[1,3]
map() Biến đổi phần tử [1,2].map(x=>x*2)[2,4]
filter() Giữ phần tử theo điều kiện [1,2,3].filter(x=>x>1)[2,3]

🎯 Tại sao điều này có ích

  • Dễ dàng ôn tập cho các cuộc phỏng vấn
  • Cải thiện trí nhớ trong 6 tháng
  • Tham khảo nhanh cho các dự án lập trình

✅ Hãy lưu lại, fork hoặc chia sẻ với những người học khác!
🔥 Hãy cùng nhau nắm vững mảng JavaScript.


🌐 Kết nối với tôi

Xem các dự án và tệp thực hành của tôi tại đây:
GitHub của tôi

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào