Tìm hiểu về mảng (Array) trong JavaScript
1) Mảng là gì !? - Mảng là một loại biến đặc biệt, nó có thể lưu trữ nhiều giá trị đồng thời. - Ví dụ, câu lệnh bên dưới dùng để tạo một mảng có tên là mobile và mảng đó chứa năm giá trị: HTC Nokia SamSung LG Apple var mobile = [ "HTC" , "Nokia" , "SamSung" , "LG" , "Apple" ...
1) Mảng là gì !?
- Mảng là một loại biến đặc biệt, nó có thể lưu trữ nhiều giá trị đồng thời.
- Ví dụ, câu lệnh bên dưới dùng để tạo một mảng có tên là mobile và mảng đó chứa năm giá trị:
- HTC
- Nokia
- SamSung
- LG
- Apple
- Lưu ý: Mỗi giá trị của mảng được gọi là một "phần tử mảng" và mỗi phần tử mảng thì được xác định bởi một chỉ số. Phần tử mảng đầu tiên sẽ có chỉ số là 0, chỉ số của các phần tử mảng sẽ tăng dần theo thứ tự được khai báo.
- Dưới đây là ví dụ minh họa về chỉ số của các phần tử trong mảng mobile.
Phần tử mảng | HTC | Nokia | SamSung | LG | Apple |
---|---|---|---|---|---|
Chỉ số của phần tử mảng | 0 | 1 | 2 | 3 | 4 |
2) Trường hợp sử dụng mảng
- Trường hợp sử dụng mảng thì rất đa dạng.
- Tuy nhiên, trong đó chỉ có hai trường hợp là chủ yếu:
- (1) Sử dụng mảng để lưu trữ các giá trị thuộc cùng một thể loại.
- (2) Sử dụng mảng để lưu trữ các giá trị liên quan đến một đối tượng.
- Phần tử thứ nhất có giá trị là chuỗi Nguyễn Thành Nhân
- Phần tử thứ hai có giá trị là chuỗi Nam
- Phần tử thứ ba có giá trị là số 1993
- Phần tử thứ tư có giá trị bằng với giá trị của biến city
- (1) Lấy giá trị của phần tử mảng.
- (2) Hoặc cập nhật giá trị cho phần tử mảng.
- Phần tử có tên name với giá trị là chuỗi Nguyễn Thành Nhân
- Phần tử có tên year với giá trị là số 1993
- Phần tử có tên city với giá trị là chuỗi Cần Thơ
3) Cách khai báo (khởi tạo) một mảng
- Để khai báo một mảng, ta sử dụng cú pháp như sau:
- Hoặc bạn cũng có thể viết các phần tử xuống dòng giống cú pháp bên dưới:
- Lưu ý: Giá trị của các phần tử mảng có thể là: chuỗi, số, biến, ....
Đoạn mã bên dưới dùng để tạo một mảng có tên là SinhVien, mảng SinhVien có bốn phần tử:
<script> var SinhVien = [ "Nguyễn Thành Nhân", 'Nam', 1993, city ]; </script>
4) Cách truy cập vào phần tử mảng
- Thông thường, chúng ta truy cập vào phần tử mảng để:
- Để truy cập vào phần tử mảng thì ta sử dụng cú pháp như sau:
- Lưu ý:Cách xác định chỉ số của phần tử mảng đã được đề cập trong phần 1) Mảng là gì !?
Hiển thị giá trị phần tử thứ ba của mảng mobile
<script> var mobile = ["HTC", "Nokia", "SamSung", "LG", "Apple"]; document.write("Giá trị của phần tử thứ ba là: " + mobile[2]); </script>
Cập nhật giá trị phần tử thứ tư của mảng mobile thành Lenovo
<script> var mobile = ["HTC", "Nokia", "SamSung", "LG", "Apple"]; mobile[3] = "Lenovo"; </script>
- Lưu ý: Để hiển thị toàn bộ giá trị của các phần tử trong mảng thì ta chỉ cần gọi tên mảng.
<script> var mobile = ["HTC", "Nokia", "SamSung", "LG", "Apple"]; document.write("Mảng mobile là: " + mobile); </script>
5) "Mảng kết hợp" là gì !?
- Mảng kết hợp là loại mảng mà các phần tử của nó không được xác định bởi chỉ số, mà được xác định bằng một cái tên (tên này do chúng ta tự đặt).
- Để khai báo một mảng kết hợp thì trước tiên ta phải khai báo một mảng rỗng, sau đó thêm từng phần tử vào mảng.
Đoạn mã bên dưới dùng để tạo một mảng có tên là SinhVien, mảng SinhVien có ba phần tử:
<script> var SinhVien = []; SinhVien["name"] = "Nguyễn Thành Nhân"; SinhVien["year"] = 1993; SinhVien["city"] = "Cần Thơ"; </script>
Hiển thị giá trị phần tử có tên là city của mảng SinhVien
<script> var SinhVien = []; SinhVien["name"] = "Nguyễn Thành Nhân"; SinhVien["year"] = 1993; SinhVien["city"] = "Cần Thơ"; document.write("Giá trị phần tử có tên city là: " + SinhVien["city"]); </script>
- Mảng kết hợp hầu như không được hỗ trợ trong JavaScript.
- Do đó, ta không thể hiển thị một loạt các phần tử mảng bằng cách gọi tên mảng.
6) Mảng hai chiều & mảng đa chiều
- Như chúng ta đã biết, giá trị của các phần tử mảng có thể là: chuỗi, số, biến, ....
- Tuy nhiên, nó còn có thể là một mảng khác.
- Ví dụ 1: Đoạn mã bên dưới dùng để tạo một mảng có tên là motorbike và mảng motorbike có năm phần tử. Trong đó, phần tử thứ hai của mảng motorbike là một mảng gồm bốn phần tử.
- Ví dụ 2: Đoạn mã bên dưới dùng để tạo một mảng có tên là motorbike và mảng motorbike có năm phần tử. Trong đó, phần tử thứ hai của mảng motorbike là một mảng gồm bốn phần tử, và phần tử thứ ba của phần tử thứ hai của mảng motorbike lại tiếp tục là một mảng gồm hai phần tử.
- Mảng mà không chứa phần tử nào là mảng thì được gọi là mảng một chiều (một cấp).
(Số chiều sẽ tăng lên dựa vào độ sâu của mảng)
- Mảng motorbike trong ví dụ 1 có độ sâu là hai nên được gọi là mảng hai chiều.
- Mảng motorbike trong ví dụ 2 có độ sâu là ba nên được gọi là mảng ba chiều.
- Để truy cập vào phần tử của mảng hai chiều, ta sử dụng cú pháp như sau:
Hiển thị giá trị của phần tử thứ tư của phần tử thứ hai của mảng motorbike
<script> var motorbike = [ "Honda", ["Jupiter", "Exciter", "Sirius", "Nouvo"], "Suzuki", "SYM", "Piaggio" ]; document.write(motorbike[1][3]); </script>
- Để truy cập vào phần tử của mảng n chiều, ta sử dụng cú pháp như sau:
(Lưu ý: Cụm từ "chỉ số của phần tử mảng cấp" tôi sẽ viết tắt là cscptmc)
Hiển thị giá trị của phần tử thứ nhất của phần tử thứ ba của phần tử thứ hai của mảng motorbike
<script> var motorbike = [ "Honda", [ "Jupiter", "Exciter", ["Sirius phanh cơ", "Sirius phanh đĩa"], "Nouvo" ], "Suzuki", "SYM", "Piaggio" ]; document.write(motorbike[1][2][0]); </script>
7) Cách lặp qua một lần các phần tử mảng
- Chúng ta có thể sử dụng vòng lặp for để lặp qua một lần các phần tử mảng.
Sử dụng một vòng lặp for để lặp qua một lần mảng một chiều
<script> var motorbike = [ "Honda", "Yamaha", "Suzuki", "SYM", "Piaggio" ]; for(var i = 0; i < motorbike.length; i++){ document.write("- " + motorbike[i] + "<br>"); } </script>
Sử dụng hai vòng lặp for để lặp qua một lần mảng hai chiều
<script> var data = [ ["HTC", "Nokia", "SamSung", "LG", "Apple"], ["Honda", "Suzuki", "Yamaha"], ["Nguyễn Thành Nhân", "Nam", 1993, "Cần Thơ"] ]; for(var i = 0; i < data.length; i++){ for(var j = 0; j < data[i].length; j++){ document.write("- " + data[i][j] + "<br>"); } document.write("<hr>"); } </script>
- Lưu ý: Cú pháp tên mảng.length dùng để trả về số lượng phần tử của mảng.