Làm cách nào để tạo mảng đa chiều trong JavaScript một cách linh hoạt?

Giống như tất cả ngôn ngữ tập lệnh​​, JavaScript có mảng động. kích thước của chúng không được xác định trước, cũng như loại dữ liệu

Chúng được khai báo bằng cách gán một chữ hoặc với một hàm tạo

Và từ dành riêng mới

var x = ["a", "b", "c"];    // literal

var x = new Array();        // constructor
var y = new Array("a", "b", "c"); // constructor with items

Lưu ý rằng nếu hàm tạo Array() chỉ chứa một phần tử số, thì phần tử này xác định kích thước của mảng và không phải là phần tử của mảng

var x = new Array(5);    // empty array with 5 slots.
var x = new Array(1, 2); // array holding two items, the 1 and 2 numbers.

Điều này có vẻ không mạch lạc lắm nhưng nó không quan trọng, bởi vì nếu chúng tôi muốn tạo một mảng gồm một số phần tử, chúng tôi sử dụng một chữ thay thế. Ví dụ

var x = [5];             // array holding only one item, the 5 number.

Người ta có thể xác minh nó với ví dụ sau

Một mảng được khai báo với hàm khởi tạo Array(5). Mảng có nội dung trống được xuất ra, sau đó kích thước của nó.
Sau đó hàm tạo Array(1,2) với hai số được xuất ra.

var x = new Array(5);
document.writeln(x);
document.writeln(x.length);

x = new Array(1, 2);
document.writeln(x);

Giá trị bằng chữ của một mảng có thể có các biến

Danh sách các mục được đặt giữa các dấu ngoặc vuông và chứa mọi giá trị, số, chuỗi, đối tượng, được phân tách bằng dấu phẩy.
Dấu phẩy dùng để chỉ định số lượng phần tử, chúng có thể chứa khoảng trống.

x = [ "a", , , , "e"]

Chữ "e" nằm ở vị trí thứ 4 trong mảng. Dấu phẩy kết thúc được bỏ qua

Một biến có thể được đưa ra giống như phần tử của một mảng chữ, sau đó nội dung của nó sẽ được gán động cho mảng

Đối với một mảng chữ hai chiều, cú pháp là

x = [[ "a", "b", "c"] , [ 1,2,3]] 

Lập chỉ mục một mảng có thể cho nó kích thước của nó

Phần tử đầu tiên có vị trí 0. Người ta gán hoặc đọc nội dung của một mảng với chỉ số vị trí giữa các dấu ngoặc vuông

var x = new Array();
alert(x[0]);     // reading
x[0] = "car"; // assigning

Nếu một vị trí khác của mảng đã được gán, ví dụ ở vị trí 5, thì mảng sẽ tự động được định lại kích thước với kích thước ít nhất là 6 phần tử, nếu kích thước cũ của nó là null hoặc nhỏ hơn 6 phần tử

Mảng được thêm vào dưới dạng mục này sang mục khác làm cho nó trở nên đa chiều

Một đa chiều được xây dựng bằng cách tạo một mảng các phần tử là các mảng khác

var a = new Array(
new Array(1, 2, 3),
new Array(4, 5, 6));
document.write(a);

Kết quả

________số 8

Kết quả

a[0][0] = 1;
a[0][1] = 2;
a[0][2] = 3;
a[1][0] = 4;
a[1][1] = 5;
a[1][2] = 6;
document.write(a);

Kết quả

Ví dụ, mục trong mảng nhiều chiều có thể được truy cập bằng chuỗi chỉ số

var x = new Array(5);    // empty array with 5 slots.
var x = new Array(1, 2); // array holding two items, the 1 and 2 numbers.
0

Điều đó sẽ xuất ra 6

Gán một mảng cho một biến, giá trị hoặc tham chiếu?

Khi chúng ta truyền một mảng làm đối số cho một hàm, thì mảng đó được truyền theo tham chiếu. Nói cách khác, nếu bạn thay đổi mảng trong hàm, thì mảng ban đầu được truyền cho hàm sẽ bị thay đổi

Nhưng khi bạn gán một mảng cho một biến, nó được gán theo tham chiếu hay theo giá trị?

var x = new Array(5);    // empty array with 5 slots.
var x = new Array(1, 2); // array holding two items, the 1 and 2 numbers.
1

Chúng tôi tạo mảng x, sau đó gán nó cho y. Chúng tôi thêm một phần tử mới "bốn" vào x. Chúng tôi nhận thấy rằng yếu tố mới này cũng có trong y

Nếu bạn muốn sao chép một mảng, thay vào đó, hãy sử dụng phương thức slice trả về một bản sao của mảng (không phải tham chiếu đến nó)

Định nghĩa mảng javascript đã được giới thiệu ở bài viết trước. Tên bài viết là "Cách sử dụng mảng Javascript", giới thiệu định nghĩa, khởi tạo, thêm, sửa, xóa phần tử, sắp xếp, chặn mảng, hợp nhất và thoát ký tự. Bài này tiếp tục giới thiệu định nghĩa, khởi tạo và ứng dụng mảng đa chiều trong javascript

Mảng một chiều sử dụng các phương thức tương tự để thêm, xóa và sắp xếp các phần tử như mảng nhiều chiều trong javascript, ngoại trừ mảng nhiều chiều coi một đối tượng (bản ghi) là một phần tử. Để biết mô tả phương thức, vui lòng tham khảo bài viết " Sử dụng mảng Javascript(nhiều ví dụ, với định nghĩa ẩn, thêm thuộc tính,xóa,sắp xếp và nối)". Ngoài ra, javascript không có danh sách như C#, nhưng bạn có thể sử dụng mảng nhiều chiều để đạt được chức năng tương tự như danh sách. Bài viết sẽ giải thích bằng các ví dụ cụ thể, bắt đầu từ định nghĩa mảng đa chiều trong Javascript

 

I. Tạo mảng đa chiều trong javascript

Xác định mảng một chiều, sau đó sử dụng nó làm phần tử của mảng một chiều khác. Mảng mà lấy mảng làm phần tử này là mảng nhiều chiều (Array matrix), tức là mảng nhiều chiều là tổng hợp của nhiều mảng một chiều. Sau đây là một ví dụ về định nghĩa mảng đa chiều javascript

var mảng = mới Mảng();
       mảng new Array("user1", "00001", "2014-5-15");
       arrays[1] = new Array("user2", "00002", "2014-5-13");
       arrays[2] = new Array("user3", "00003", "2014-5-10");

 

Hoặc

var arrays = [
              ["user1 ", "00001", "2020-5-15"],
              ["user2", "00002", "2020-5-13"],
              ["user3", "00003", "2020-5-10"]
       ];

 

Javascript tự động tạo mảng đa chiều

var mảng = mới Mảng();
       < for (var i = 0; i < 10; i++) {
              arrays[i] = new Array("user" + i, "0000" + i, "2014-5-15");
       }

 

II. Mảng đa chiều Javascript để thêm các phần tử

1. Thêm một bản ghi (các mục) sau khi kết thúc mảng (Đẩy mảng đa chiều Javascript)

mảng. đẩy([ "user4" , "00004" , "2020-5-16"]);

Xuất phần tử tương ứng tại giao điểm của cột đầu tiên và hàng thứ ba

tài liệu. write(arrays[3][1]); //Kết quả. 00004

 

2. Thêm một bản ghi (các mục) sau khi bắt đầu mảng (Đẩy mảng đa chiều Javascript)

mảng. unshift([ "user4" , "00004" , "2020-5-16"]);//Add elements (item) before the first line

Xuất tất cả các phần tử

for ( var i = 0; i < mảng. chiều dài; . chiều dài; . write(arrays[i][j]);
              for (var j = 0; j < arrays[i].length; j++){
                     document.write(arrays[i][j]);
                      if (j < arrays[i]. độ dài - 1){
                            tài liệu. write( ", " );
                     }
              }
              document.write("" );
       }

Kết quả

user4, 00004, 2020-5-16
       user1, 00001, 2020-5-15
       user2, 00002, 2020-5-13
       user3, 00003, 2020-5-10

 

3. Thêm các phần tử sau các dòng hiện có (đẩy mảng đa chiều Javascript)

mảng[1]. đẩy([ "user4" , "00004" , "2020-5-16"]);//Add elements after the first line

Xuất tất cả các phần tử dưới dạng (xem ở trên để biết phương thức xuất)

user1, 00001, 2020-5-15
       user2, 00002, 2020-5-13, user4,00004,2020-5-16
       user3, 00003, 2020-5-10

 

4. Xóa hai bản ghi (mục) khỏi vị trí đã chỉ định rồi chèn một bản ghi

mảng. splice(1,2,[ "user4" , "00004", "2020-5-16"]);//Delete two records(items) from the second record and insert one record

Xuất tất cả các phần tử dưới dạng (xem ở trên để biết phương thức xuất)

user1, 00001, 2020-5-15
       user4, 00004, 2020-5-16

 

 

III. Cách xóa phần tử khỏi mảng đa chiều javascript

1. Xóa phần tử cuối cùng của dòng được chỉ định

mảng[1]. pop(); //Xóa phần tử cuối cùng của dòng thứ hai

đầu ra là

user1, 00001, 2020-5-15
       user2, 00002
       user3, 00003, 2020-5-10

 

2. Xóa bản ghi cuối cùng trong mảng

mảng. nhạc pop();

đầu ra là

user1, 00001, 2020-5-15
       user2, 00002, 2020-5-1

 

3. Xóa phần tử đầu tiên của dòng được chỉ định

mảng[1]. pop(); //Xóa phần tử đầu tiên của dòng thứ hai

đầu ra là

user1, 00001, 2020-5-15
       00002, 2020-5-13
       user3, 00003, 2020-5-10

 

4. Xóa bản ghi (mục) đầu tiên trong mảng

mảng. sự thay đổi();

đầu ra là

user2, 00002, 2020-5-13
       user3, 00003, 2020-5-10

 

5. Xóa bản ghi (mục) đã chỉ định khỏi vị trí đã chỉ định

mảng. mối nối(1,2); //Xóa 2 bản ghi khỏi bản ghi thứ hai (mục)

đầu ra là

người dùng1, 00001, 2020-5-15

 

IV. Javascript sắp xếp mảng đa chiều

1. Thứ tự tăng dần

mảng. loại();

đầu ra là

user1, 00001, 2020-5-15
       user2, 00002, 2020-5-13
       user3, 00003, 2020-5-10

 

2. giảm dần

mảng. đảo ngược();

đầu ra là

user3, 00003, 2020-5-10
       user2, 00002, 2020-5-13
       user1, 00001, 2020-5-15

 

V. Ứng dụng của mảng đa chiều javascript

Trong quá trình phát triển trang web, danh mục sản phẩm và khu vực thường được hiển thị. Danh mục sản phẩm có các thuộc tính như "số, tên và loại gốc" và các khu vực cũng có "số, tên và số gốc". Mỗi bản ghi có nhiều thuộc tính (nhiều bản ghi là một danh sách), điều này không thể thực hiện được với mảng một chiều và cần được thực hiện với mảng nhiều chiều. Sau đây lấy việc thực hiện phân loại sản phẩm làm ví dụ

Định nghĩa mảng

var danh sách = mới Array();
       < for (var i = 0; i < 100; i++) {
              lists[i] = new Array("Category number" + i, "Category Name" + i, "Parent number");
       }

Đọc phần tử mảng

Lấy số loại của bản ghi thứ ba. danh sách[2][0];danh sách[2][0];

Lấy tên danh mục của bản ghi thứ ba. danh sách[2][1];

Nhận các thuộc tính trường của các bản ghi khác, v.v. Lưu ý rằng chỉ số bắt đầu (chỉ số) của mảng là 0

 

Danh sách trong C# có thể là một lớp (nghĩa là các thuộc tính trường có thể thuộc các kiểu khác nhau). Các phần tử của mảng javascript cần cùng kiểu. Khi các thuộc tính trường khác nhau (chẳng hạn như int, string), tất cả int có thể được định nghĩa là một mảng, tất cả các chuỗi được định nghĩa là một mảng khác;

Làm cách nào để tạo nhiều mảng động trong JavaScript?

Để làm như vậy, bạn phải chuyển các phần tử làm đối số cho hàm tạo được tham số hóa Array() . var mảng = mảng mới (phần tử1, phần tử2, phần tử3,. ); .

Làm cách nào để tạo mảng trong JavaScript động?

Nó hoạt động dựa trên mảng chữ và các phần tử mảng hàm tạo. var mảng=mảng mới(); . Array() là hàm tạo được xác định trước trong JavaScript, tạo mảng động theo mặc định

Làm cách nào để thêm mảng nhiều chiều trong JavaScript?

Thêm phần tử vào mảng nhiều chiều .
Bạn có thể sử dụng phương thức push() của Array hoặc ký hiệu lập chỉ mục để thêm các phần tử vào mảng nhiều chiều
Bạn cũng có thể sử dụng phương thức splice() của Array để thêm một phần tử vào một chỉ mục đã chỉ định

Làm thế nào bạn có thể tạo mảng đa chiều?

Bạn có thể tạo một mảng nhiều chiều bằng cách tạo ma trận 2-D trước rồi mở rộng nó . Ví dụ: trước tiên hãy xác định ma trận 3 nhân 3 là trang đầu tiên trong mảng 3-D. Bây giờ thêm một trang thứ hai. Để thực hiện việc này, hãy gán một ma trận 3 nhân 3 khác cho giá trị chỉ mục 2 trong chiều thứ ba.