Nếu bạn có một danh sách các mục [ví dụ: danh sách tên ô tô], việc lưu trữ ô tô trong các biến đơn lẻ có thể trông như thế này
let car1 = "Saab";
let car2 = "Volvo";
let car3 = "BMW";
Tuy nhiên, nếu bạn muốn đi vòng qua các ô tô và tìm một ô tô cụ thể thì sao?
Giải pháp là một mảng
Một mảng có thể chứa nhiều giá trị dưới một tên duy nhất và bạn có thể truy cập các giá trị bằng cách tham chiếu đến một số chỉ mục
Tạo một mảng
Sử dụng một mảng chữ là cách dễ nhất để tạo một mảng JavaScript
cú pháp
const tên_mảng = [mục1,mục2,. ];
Một thực tế phổ biến là khai báo mảng với từ khóa const
Tìm hiểu thêm về const với mảng trong chương. Mảng JS Const
Dấu cách và ngắt dòng không quan trọng. Một khai báo có thể trải rộng trên nhiều dòng
Bạn cũng có thể tạo một mảng rồi cung cấp các phần tử
Thí dụ
const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";
Sử dụng Từ khóa JavaScript mới
Ví dụ sau cũng tạo một Array và gán giá trị cho nó
Hai ví dụ trên làm hoàn toàn giống nhau
Không cần sử dụng
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];0
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Để đơn giản, dễ đọc và tốc độ thực thi, hãy sử dụng phương thức ký tự mảng
Truy cập các phần tử mảng
Bạn truy cập một phần tử mảng bằng cách tham khảo số chỉ mục
Ghi chú. Chỉ mục mảng bắt đầu bằng 0
[0] là phần tử đầu tiên. [1] là phần tử thứ hai
Thay đổi một phần tử mảng
Câu lệnh này thay đổi giá trị của phần tử đầu tiên trong
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];1
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Truy cập toàn bộ mảng
Với JavaScript, toàn bộ mảng có thể được truy cập bằng cách tham khảo tên mảng
Thí dụ
const cars = ["Saab", "Volvo", "BMW"];
tài liệu. getElementById["bản trình diễn"]. innerHTML = ô tô;
Mảng là đối tượng
Mảng là một loại đối tượng đặc biệt. Toán tử
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];2 trong JavaScript trả về "đối tượng" cho mảng
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Tuy nhiên, mảng JavaScript được mô tả tốt nhất là mảng
Mảng sử dụng số để truy cập "phần tử" của nó. Trong ví dụ này,
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];3 trả về John
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Các đối tượng sử dụng tên để truy cập "thành viên" của nó. Trong ví dụ này,
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];4 trả về John
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Các phần tử mảng có thể là đối tượng
Biến JavaScript có thể là đối tượng. Mảng là loại đối tượng đặc biệt
Do đó, bạn có thể có các biến thuộc các loại khác nhau trong cùng một Mảng
Bạn có thể có các đối tượng trong một Mảng. Bạn có thể có các chức năng trong một Mảng. Bạn có thể có các mảng trong một Mảng
Đối với hai bài tập trong tập thể dục. io [Ma trận và Tam giác Pascal], tôi muốn tạo một mảng các mảng trống. Có rất nhiều cách để làm điều này. Tâm trí người mới của tôi mặc định là vòng lặp
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];5,
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];6 hoặc vòng lặp
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];7. Tuy nhiên cũng có một số tùy chọn khác
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Tôi thấy bài viết stackoverflow này hữu ích. Tôi đã tìm hiểu về hai tùy chọn mới từ bài báo
lựa chọn 1. Mảng. nguyên mẫu. điềnconst emptyRows = new Array[4].fill[[]];console.log[emptyRows];
// returns [[], [], [], []] in Sublime
// returns [[], [circular object array], [circular object array], [circular object array]] in CodePen
Điều này có vẻ thực sự thanh lịch và thật dễ dàng để đọc mã và hiểu những gì nó làm. Tuy nhiên, đầu ra CodePen làm tôi bối rối.
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];8 là gì?
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Thậm chí còn khó hiểu hơn, khi tôi sử dụng mã này và gọi phương thức
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];0, tôi gặp phải một lỗi nghiêm trọng. Đống JavaScript hết bộ nhớ. Tôi cung không chăc tại sao. Tôi cho rằng tùy chọn này sẽ hoạt động tốt nếu tôi lấp đầy mảng bằng thứ gì đó không phải là
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];9Lựa chọn 2. Mảng. từ 1
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
Tùy chọn này hoạt động tốt. Không có lỗi nghiêm trọng đối với tôi. Tôi không hiểu lắm về cách thức hoạt động của nó, ngay cả với lời giải thích về StackOverflow. Nhưng đây là nỗ lực của tôi để phá vỡ nó
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];2 tạo một mảng gồm bốn đối tượng
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];0.
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];1
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];2 lặp qua từng phần tử
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];0 và thay thế nó bằng
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];9. Tuy nhiên, bạn không thể sử dụng
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];5. Đây là một chút tôi không hiểu lắm. Tức là không hiểu tại sao
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];6 lại khác và không dùng được. Nhưng tiếp tục
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];7 tạo một mảng từ cái này. Theo suy nghĩ của tôi, các ví dụ trên tài liệu dành cho nhà phát triển Mozilla trải qua các trường hợp sử dụng đơn giản hơn, vì vậy điều này cũng không có ý nghĩa gì đối với tôi. Cụ thể là tại sao tôi lại cần
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen
const emptyRows = Array.from[Array[4], [] => []];console.log[emptyRows];7? . Hy vọng rằng trong tương lai tôi sẽ hiểu cách thức hoạt động của nó
// returns [[], [], [], []] in Sublime
// returns [[], [], [], []] in CodePen