Mảng nhiều chiều là một loại cấu trúc dữ liệu lồng nhau đặc biệt, bao gồm một mảng, mỗi phần tử của nó lại là một mảng. Đây là một ví dụ
let myFirstSubarray = [["this", "is"], ["super", "cool"]];
Khi làm việc với mảng hai chiều, nếu bạn muốn in ra tất cả các giá trị, bạn sẽ cần một vòng lặp bên trong vòng lặp. Hãy xem xét điều này một chút nữa
Nhưng nếu chúng ta muốn in ra từng giá trị riêng lẻ [i. e. 1, 2, 3, 4] chứ không chỉ mỗi mảng? . Theo truyền thống, chúng tôi khởi tạo bộ đếm bên trong là j
[chữ cái xuất hiện sau i
] và chúng tôi sẽ lặp miễn là j
nhỏ hơn độ dài của mỗi mảng bên trong
Đây là một ví dụ khác - hãy xem nhanh và thử sao chép nó mà không cần xem mã
let nestedArr = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10, 11, 12]]; for [let i = 0; i < nestedArr.length; i++] { for [let j = 0; j < nestedArr[i].length; j++] { console.log[nestedArr[i][j]]; } }
Vậy mảng hai chiều được sử dụng khi nào? . Ví dụ: khi xây dựng trò chơi, bạn thường có thể lập mô hình bảng trò chơi giống như một mảng lồng nhau. Bạn có thể sử dụng một mảng lồng nhau cho bảng tic-tac-toe, bảng Minesweeper hoặc có thể cho một vài ván bài xì phé
Tài nguyên bổ sung
Một bài đăng tuyệt vời về cách truy cập tài nguyên lồng nhau - http. // stackoverflow. com/câu hỏi/11922383/access- process-nested-objects-arrays-or-json
bài tập
Cho mảng sau, hãy viết một hàm có tên là printEvens
bàn điều khiển đó. ghi tất cả các số chẵn
Cho mảng sau, hãy viết hàm có tên là sumTotal
trả về tổng của tất cả các số trong mảng
Đây là giải pháp có thể trông như thế nào đối với hàm sumTotal
function sumTotal[] { let total = 0; for [let i = 0; i < nestedArr.length; i++] { for [let j = 0; j < nestedArr[i].length; j++] { total += nestedArr[i][j]; } } return total; }
Tiền thưởng tùy chọn
Cho mảng sau, hãy viết một hàm có tên là countVowels
, trả về số lượng của tất cả các nguyên âm trong mỗi chuỗi bất kể trường hợp nào. Để xem một giá trị có phải là một mảng hay không, bạn không thể sử dụng
let nestedArr = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10, 11, 12]]; for [let i = 0; i < nestedArr.length; i++] { for [let j = 0; j < nestedArr[i].length; j++] { console.log[nestedArr[i][j]]; } }0 vì nó sẽ trả về
let nestedArr = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10, 11, 12]]; for [let i = 0; i < nestedArr.length; i++] { for [let j = 0; j < nestedArr[i].length; j++] { console.log[nestedArr[i][j]]; } }1, vì vậy một cách để làm điều này là sử dụng hàm
let nestedArr = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10, 11, 12]]; for [let i = 0; i < nestedArr.length; i++] { for [let j = 0; j < nestedArr[i].length; j++] { console.log[nestedArr[i][j]]; } }2
Giải pháp tiền thưởng tùy chọn
Đây là một giải pháp sử dụng phép lặp, khi bạn tiếp tục tìm hiểu thêm về lập trình, bạn sẽ thấy rằng đây là một trường hợp sử dụng đệ quy tuyệt vời [viết một hàm gọi chính nó]
Sau khi khai báo một mảng lồng nhau trong JavaScript, bạn có thể thực hiện các thao tác khác nhau trên mảng đó, chẳng hạn như nối thêm các mảng con, truy cập các phần tử của các mảng con, lặp qua tất cả các phần tử của các mảng con, xóa một mảng con hoặc
Bài viết này sẽ giải thích hoạt động của các mảng lồng nhau trong JavaScript với sự trợ giúp của các ví dụ phù hợp. Vì vậy, hãy bắt đầu
Cách tạo một mảng lồng nhau trong JavaScript
Để tạo một mảng lồng nhau trong JavaScript, bạn phải tuân theo cú pháp dưới đây
let mảng = [ [ inner_array1 ], [inner_array2], [inner_array3]....];
Ở đây, “mảng” đại diện cho mảng lồng nhau có chứa nhiều mảng bên trong, chẳng hạn như “inner_array1”, “inner_array2”, “inner_array3”
Thí dụ. Cách tạo một mảng lồng nhau trong JavaScript
Chúng ta sẽ tạo một mảng đa chiều hoặc mảng lồng nhau có tên là “sở thích” bao gồm thêm năm mảng bên trong
hãy để sở thích = [
['Đọc' , 4]