Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

Trong các hướng dẫn trước đây, chúng tôi đã xem xét các điều cơ bản về mảng JavaScript, các mảng điều khiển và các mảng sắp xếp. Cho đến nay, tất cả các mảng mà chúng tôi đã xử lý đã được các mảng phẳng của người Viking; Mỗi phần tử mảng chứa một giá trị duy nhất, chẳng hạn như một số, chuỗi hoặc đối tượng.

Tuy nhiên, giống như hầu hết các ngôn ngữ lập trình, JavaScript cho phép bạn tạo các mảng bên trong các mảng, được gọi là mảng lồng nhau. Trong một mảng lồng nhau, các yếu tố của một mảng là các mảng. Ví dụ:


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
alert ( pets[0][0] + " is a " + pets[0][1] + " year old " + pets[0][2] ); // Displays "Sheba is a 13 year old cat"
alert ( pets[1][0] + " is a " + pets[1][1] + " year old " + pets[1][2] ); // Displays "Jasper is a 12 year old dog"

Ở đây, chúng tôi đã tạo ra một mảng gồm 2 yếu tố. Mỗi phần tử lần lượt một mảng chứa 3 phần tử. Để truy cập các phần tử của các mảng bên trong, bạn chỉ cần sử dụng hai bộ dấu ngoặc vuông. Ví dụ:


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
6 truy cập phần tử thứ 3 của mảng bên trong phần tử thứ 2 của mảng

var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
7.

Bạn có thể làm tổ sâu như bạn muốn. Ví dụ, ở đây, chúng tôi đã tạo ra một mảng cấp cao nhất có tên là


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
8, trong đó chúng tôi đã đặt mảng

var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
7 ở trên, cũng như một mảng ____20 tương tự-tổng cộng 3 cấp độ làm tổ: tổng cộng:


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"

Lặp qua các mảng lồng nhau

Tất nhiên, một khi bạn bắt đầu làm tổ, bạn sẽ nhanh chóng kết thúc với rất nhiều phần tử mảng. Cách dễ nhất để làm việc với các mảng lớn là sử dụng các vòng. Và để xử lý các mảng lồng nhau, bạn cần sử dụng các vòng lặp lồng nhau.

Ví dụ: các vòng lặp mã sau qua mảng lồng nhau


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
8 mà chúng tôi đã tạo ở trên, hiển thị từng động vật, cùng với độ tuổi và loại của chúng:


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}

Bây giờ bạn đã biết cách tạo và sử dụng các mảng lồng trong JavaScript. Bạn sẽ thấy các mảng lồng nhau rất hữu ích khi bạn muốn lưu trữ dữ liệu có cấu trúc cao - chẳng hạn như ví dụ


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
8 của chúng tôi ở trên - và khi bạn tạo ra các cấu trúc dữ liệu đa chiều (thường được sử dụng trong các ứng dụng trò chơi và đồ họa). Vui thích!

Tương tác độc giả

Để bao gồm một khối mã trong nhận xét của bạn, hãy bao quanh nó với các thẻ


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
3. Bạn có thể bao gồm các đoạn mã nhỏ hơn bên trong một số văn bản thông thường bằng cách xung quanh chúng với các thẻ

for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
4.

Thẻ được phép trong nhận xét:


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
5.

Đây là ví dụ về những gì tôi đang làm:

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);

Tôi đang thực hiện một hình thức chọn vòng lặp hoạt động tốt, nhưng tôi muốn lấy tên con mảng, trong trường hợp này - kích thước hoặc màu sắc. Khi tôi đang cảnh giác (Tùy chọn [0]), tôi nhận được toàn bộ các yếu tố của mảng. Nhưng đối với một số trường hợp cụ thể, tôi chỉ muốn lấy tên mảng, có kích thước/màu sắc như tôi đã nói. Có cách nào để đạt được điều đó không?

Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

Peterh

11.1K16 Huy hiệu vàng82 Huy hiệu bạc102 Huy hiệu đồng16 gold badges82 silver badges102 bronze badges

Đã hỏi ngày 26 tháng 3 năm 2012 lúc 11:57Mar 26, 2012 at 11:57

Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

2

Tôi sẽ tạo một đối tượng như thế này:

var options = { 
    size: ["S", "M", "L", "XL", "XXL"],
    color: ["Red", "Blue", "Green", "White", "Black"]
};


alert(Object.keys(options));

Để truy cập các phím cá nhân:

for (var key in options) {
    alert(key);
}

P.S .: Khi bạn tạo một đối tượng mảng mới, không sử dụng


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
6 sử dụng

for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
7 thay thế.

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 12:04Mar 26, 2012 at 12:04

Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

Antonjsantonjsantonjs

13.7K11 Huy hiệu vàng62 Huy hiệu bạc91 Huy hiệu Đồng11 gold badges62 silver badges91 bronze badges

3

Bạn có thể nhận được bằng cách sử dụng giá trị


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
8 một cái gì đó như thế này:

var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array(size, color);

var len = options.length;
for(var i = 0; i<len; i++)
{  
 for(var key in options[i])
    {
       alert(options[i][key])
    }

}

Xem tại đây: http://jsfiddle.net/8hmrk/8/

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 12:25Mar 26, 2012 at 12:25

Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

1

Không có cách nào để biết rằng hai thành viên của mảng


for ( i=0; i<animals.length; i++ )
{
  for ( j=0; j<animals[i].length; j++ )
  {
    alert ( animals[i][j][0] + " is a " + animals[i][j][1] + " year old " + animals[i][j][2] );
  }
}
9 đến từ các biến có tên
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
0 và
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
1.

Chúng cũng không nhất thiết được gọi là độc quyền, bất kỳ biến nào cũng có thể chỉ vào mảng đó.

var notSize = size;

console.log(options[0]); // It is `size` or `notSize`?

Một điều bạn có thể làm là sử dụng một đối tượng ở đó thay thế ...

var options = {
    size: size,
    color: color
}

Sau đó, bạn có thể truy cập

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
2 hoặc
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
3.

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 11:58Mar 26, 2012 at 11:58

Hướng dẫn can we have array inside array in javascript? - chúng ta có thể có mảng bên trong mảng trong javascript không?

Alexalexalex

468K197 Huy hiệu vàng868 Huy hiệu bạc976 Huy hiệu Đồng197 gold badges868 silver badges976 bronze badges

Bạn không thể. Mảng không có tên.

Bạn chỉ có hai tham chiếu đến mảng, một trong biến và một trong mảng thứ ba.

Không có cách nào để tìm tất cả các tài liệu tham khảo tồn tại cho một đối tượng nhất định.

Nếu tên là quan trọng, thì hãy lưu trữ nó với dữ liệu.

var size = { data: ["S", "M", "L", "XL", "XXL"], name: 'size' };
var color = { data: ["Red", "Blue", "Green", "White", "Black"], name: 'color' };
var options = [size, color];

Rõ ràng là bạn sẽ phải sửa đổi mã hiện có truy cập dữ liệu (vì bây giờ bạn có

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
4 thay vì
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
5 nhưng bạn cũng có
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
6).

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 11:59Mar 26, 2012 at 11:59

QuentinentinQuentin

881K121 Huy hiệu vàng1179 Huy hiệu bạc1291 Huy hiệu Đồng121 gold badges1179 silver badges1291 bronze badges

2

Vâng, đúng vậy. Bạn có thể dùng


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
0

Để có được kích thước "S"

hoặc


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
1

Để có được màu "đỏ"

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 12:00Mar 26, 2012 at 12:00

TOBITOBITobi

1.4401 Huy hiệu vàng13 Huy hiệu bạc26 Huy hiệu đồng1 gold badge13 silver badges26 bronze badges

Trong trường hợp đó, bạn không muốn chèn

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
0 và
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
1 bên trong một mảng, nhưng vào một đối tượng


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
2

Sau đó bạn có thể truy cập các bộ khóa bằng cách


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
3

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 12:00Mar 26, 2012 at 12:00

TOBITOBISirko

1.4401 Huy hiệu vàng13 Huy hiệu bạc26 Huy hiệu đồng19 gold badges143 silver badges176 bronze badges

Trong trường hợp đó, bạn không muốn chèn

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
0 và
   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
1 bên trong một mảng, nhưng vào một đối tượng

Sau đó bạn có thể truy cập các bộ khóa bằng cách


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
4

SirkosirkoMar 26, 2012 at 12:01

70.9K19 Huy hiệu vàng143 Huy hiệu bạc176 Huy hiệu đồngdanp

Bạn đã tạo một mảng mảng (đa chiều), vì vậy các tùy chọn [0] trong trường hợp này là mảng kích thước. Bạn cần tham khảo phần tử đầu tiên của đứa trẻ, mà đối với bạn là: Tùy chọn [0] [0].6 gold badges40 silver badges48 bronze badges

Nếu bạn muốn lặp qua tất cả các mục, bạn có thể sử dụng cú pháp

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);
9 được mô tả ở đây.


var pets = new Array ( );
pets[0] = new Array ( "Sheba", 13, "cat" );
pets[1] = new Array ( "Jasper", 12, "dog" );
var dinosaurs = new Array ( );
dinosaurs[0] = new Array ( "Cyril", 45, "Tyrannosaur" );
dinosaurs[1] = new Array ( "Gertrude", 72, "Brontosaur" );
var animals = new Array ( pets, dinosaurs );
alert ( animals[0][1][0] + " is a " + animals[0][1][1] + " year old " + animals[0][1][2] ); // Displays "Jasper is a 12 year old dog"
5

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 12:01Sep 14, 2016 at 9:17

Bạn có thể đặt một mảng bên trong một mảng javascript không?

Mảng lồng trong JavaScript được định nghĩa là mảng (mảng ngoài) trong một mảng khác (mảng bên trong). Một mảng có thể có một hoặc nhiều mảng bên trong. Các mảng lồng nhau này (mảng bên trong) nằm trong phạm vi của mảng bên ngoài có nghĩa là chúng ta có thể truy cập vào các phần tử mảng bên trong này dựa trên tên đối tượng mảng bên ngoài.. An Array can have one or more inner Arrays. These nested array (inner arrays) are under the scope of outer array means we can access these inner array elements based on outer array object name.

Làm thế nào để bạn viết một mảng bên trong một mảng?

Ở đây chúng tôi đã tạo ra một mảng gồm 2 yếu tố. Mỗi phần tử lần lượt một mảng chứa 3 phần tử. Để truy cập các phần tử của các mảng bên trong, bạn chỉ cần sử dụng hai bộ dấu ngoặc vuông. Ví dụ, vật nuôi [1] [2] truy cập vào phần tử thứ 3 của mảng bên trong phần tử thứ 2 của mảng vật nuôi.use two sets of square brackets. For example, pets[1][2] accesses the 3rd element of the array inside the 2nd element of the pets array.

Làm thế nào để bạn khai báo một mảng mảng trong JavaScript?

Tạo một mảng bằng cách sử dụng một mảng theo nghĩa đen là cách dễ nhất để tạo ra một mảng javascript.Cú pháp: const mảng_name = [item1, item2, ...];Đó là một thực tế phổ biến để khai báo các mảng với từ khóa Const.const array_name = [item1, item2, ...]; It is a common practice to declare arrays with the const keyword.

Mảng có thể được lồng không?

Các yếu tố mảng mảng lồng nhau có thể chứa bất cứ thứ gì, bao gồm cả các mảng khác.Bạn có thể tạo các mảng với các mảng bên trong chúng và thậm chí các mảng bên trong các mảng bên trong đó.Array elements can contain anything, including other arrays. You can create arrays with arrays inside them and even arrays inside those inner arrays.