Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Tôi đang cố gắng chuyển đổi dữ liệu của mình từ API sang nhu cầu của mình. Muốn tạo ra một mảng lồng từ mảng trơn. Tôi muốn nhóm các yếu tố theo thuộc tính parentId, nếu parentId sẽ không tồn tại, tôi sẽ đặt nó làm gốc. Giá trị id là duy nhất. Như vậy (dữ liệu thô):

[
    {id: 1, name: 'sensor'},
    {id: 2, name: 'sensor', parent: 1},
    {id: 3, name: 'sensor', parent: 1},
    {id: 4, name: 'sensor', parent: 3},
    {id: 5, name: 'sensor'},
    {id: 6, name: 'sensor', parent: 5}
]

Dữ liệu đã chuyển đổi:

  const results = [
    {
      id: 1,
      name: "sensor",
      children: [
        { id: 2, name: "sensor", parent: 1 },
        {
          id: 3,
          name: "sensor",
          parent: 1,
          children: [{ id: 4, name: "sensor", parent: 3 }]
        }
      ]
    },
    { id: 5, name: "sensor", children: [{ id: 6, name: "sensor", parent: 5 }] }
  ];

Tôi đã tìm thấy phương pháp đệ quy này nhưng nó giả định rằng thuộc tính gốc tồn tại cho mọi yếu tố trong một mảng. Trong ví dụ của tôi, phần tử cấp gốc của tôi sẽ không có thuộc tính cha.

function getNestedChildren(arr, parent) {
    var out = []
    for(var i in arr) {
        if(arr[i].parent == parent) {
            var children = getNestedChildren(arr, arr[i].id)

            if(children.length) {
                arr[i].children = children
            }
            out.push(arr[i])
        }
    }
    return out
}

Trong JavaScript, khi một mảng bên trong hoặc mảng con được thêm vào một mảng, nó được biết đến như một mảng đa chiều đa chiều hoặc mảng lồng nhau. JavaScript không cung cấp một định dạng rõ ràng để tạo ra một mảng lồng nhau; Do đó, chúng ta cần phải tổ các mảng con cần thiết trong một mảng ngoài. Ngoài ra, các phần tử của các mảng bên trong được truy cập dựa trên chỉ mục của chúng ở mảng bên ngoài.Multi-dimensional” or “Nested” array. JavaScript does not provide an explicit format to create a nested array; therefore, we need to nest the required sub-arrays within a single outer array. Also, the elements of inner arrays are accessed based on their index in the outer array.

Sau khi khai báo một mảng lồng nhau trong JavaScript, bạn có thể thực hiện các hoạt động khác nhau trên đó, chẳng hạn như nối thêm các mảng con, truy cập vào các phần tử của các mảng con, lặp lại tất cả các phần tử phân nhóm, xóa một mảng con hoặc nó yếu tố liên quan và giảm kích thước của mảng lồng nhau.

Bài viết này sẽ giải thích hoạt động của các mảng lồng 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!working of the nested arrays in JavaScript with the help of suitable examples. So, let’s start!

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Cách tạo một mảng lồng nhau trong JavaScript

Để tạo một mảng lồng trong JavaScript, bạn phải theo cú pháp dưới đây:

Let mảng = [[Inside_Array1], [Inside_array2], [Inside_array3] ....];= [ [inner_array1], [inner_array2], [inner_array3]....];

Ở đây, Array Array, đại diện cho mảng lồng nhau có chứa nhiều mảng bên trong, chẳng hạn như bên trong_array1 ,, bên trong_array2,, bên trong_array3.array” represents the nested array that contains multiple inner-arrays such as “inner_array1”, “inner_array2”, “inner_array3”.

Ví dụ: Cách tạo một mảng lồng nhau trong JavaScript

Chúng tôi sẽ tạo ra một mảng đa chiều hoặc lồng nhau có tên là Sở thích, bao gồm thêm năm mảng bên trong:hobbies” that further comprises five inner arrays:

để sở thích = [= [

['Đọc', 4],'Reading', 4],

['Làm vườn', 2],'Gardening', 2],

['Gaming', 1],'Gaming', 1],

['Tranh', 8],'Painting', 8],

['Nấu ăn', 5]'Cooking', 5]

];;

Trong các sở thích được tuyên bố của người Viking, mảng, chiều đầu tiên được thêm vào đại diện cho sở thích của người Hồi giáo, và thứ hai cho biết số lượng tối đa của giờ đã dành trong khi thực hiện hoạt động đó.hobbies” array, the added first dimension represents the “hobby,” and the second indicates the maximum number of “hours” spent while doing that activity.

Bây giờ, để hiển thị các sở thích được tạo ra trên mạng, chúng tôi sẽ sử dụng phương thức Console.table () của Google trong khi chuyển qua mảng Sở thích của Hồi giáo như một đối số:hobbies” nested array, we will utilize the “console.table()” method while passing the “hobbies” array as an argument:

Việc thực hiện mã được đưa ra ở trên sẽ hiển thị các giá trị của mảng Sở thích của người dùng ở định dạng bảng, trong đó cột đầu tiên biểu thị chỉ số của các mảng bên trong và hai cột khác chứa các phần tử của chúng có mặt ở đầu tiên [0] [0] Chỉ số thứ hai và thứ hai [1] chỉ số:hobbies” array in a table format, where the first column represents the index of inner arrays and the other two columns contain their elements that are present at the first “[0]” and second “[1]” index:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Cách truy cập các yếu tố của mảng lồng trong JavaScript

Cần truy cập các yếu tố của một mảng lồng nhau? Nếu có, thì hãy xem cú pháp dưới đây:

Ở đây, một số người khác đại diện cho chỉ số của mảng bên trong của bên trong trong mảng lồng nhau được tạo ra, và B Biêu đại diện cho chỉ số của phần tử của thành phần trong phần bên trong hoặc bên trong được chỉ định.a” represents the index of the “inner” array in the created nested array, and “b” represents the index of the “element” in the specified inner or sub-array.

Ví dụ: Cách truy cập các phần tử của mảng lồng trong JavaScript

Chẳng hạn, chúng tôi muốn truy cập vào sở thích của Cooking Cooking, tồn tại dưới dạng phần tử đầu tiên của Hồi giáo [0]Cooking” hobby that exists as the “First” element “[0]” of the fifth inner array “[4]”:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Để thực hiện thao tác được chỉ định, chúng tôi sẽ thực hiện câu lệnh mã được đưa ra dưới đây:

console.log(hobbies[4][0]);log(hobbies[4][0]);

Như bạn có thể thấy từ đầu ra, chúng tôi đã truy cập thành công giá trị của mảng Sở thích của người dùng được đặt ở chỉ mục đầu tiên của mảng bên trong thứ năm:hobbies” array that is placed at the first index of the fifth inner array:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Cách thêm các phần tử vào mảng lồng trong JavaScript

JavaScript cung cấp hai cách để thêm các phần tử vào một mảng lồng nhau đã được tạo; Hoặc là bạn có thể nối một phần tử ở cuối một mảng bằng phương thức Push Push () hoặc chèn nó ở một vị trí cụ thể với sự trợ giúp của phương thức Splice Splice ().append an element at the end of an array using the “push()” method or insert it at a specific position with the help of the “splice()” method.

Ví dụ: Cách thêm các phần tử vào mảng lồng trong JavaScript

Để đẩy các mạng con [Cycling, 6], ở cuối của các sở thích trên mạng, chúng tôi sẽ chuyển nó như một cuộc tranh luận cho phương thức Sở thích.push ().[Cycling, 6]” sub-array as at the end of the “hobbies” nested array, we will pass it as an argument to the “hobbies.push()” method:

Sở thích.push (['đạp xe', 6]);push(['Cycling', 6]);

Console.Table (Sở thích);table(hobbies);

Khi các sở thích đã cho.push () đã được thực thi, nó sẽ thêm mảng con được chỉ định ở cuối mảng Sở thích của Hồi giáo:hobbies.push()” gets executed, it will add the specified sub-array at the end of the “hobbies” array:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Trong khi đó, để chèn một mảng con ở giữa các mảng bên trong khác, hãy sử dụng phương thức splice splice () theo cách sau:splice()” method in the following way:

Sở thích.Splice (1, 0, ['hát', 3]);splice(1, 0, ['Singing', 3]);

Console.Table (Sở thích);table(hobbies);

Khi các sở thích đã cho.push () đã được thực thi, nó sẽ thêm mảng con được chỉ định ở cuối mảng Sở thích của Hồi giáo:hobbies.splice()” method will overwrite the “hobbies” array and add the “[‘Singing’, 3]” sub-array at the second position:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Trong khi đó, để chèn một mảng con ở giữa các mảng bên trong khác, hãy sử dụng phương thức splice splice () theo cách sau:

Sở thích.Splice (1, 0, ['hát', 3]);

Tại đây, phương thức Sở thích của người Viking.Splice () sẽ ghi đè lên mảng Sở thích của người Viking và thêm vào [‘Singing, 3]for” loop is primarily utilized to iterate over the elements of an array. However, as in our case, we have a “nested” array, so we will add two “for” loops nested within the other.

Cho đến thời điểm này, chúng tôi đã học được quy trình để tạo ra một mảng lồng nhau và thêm các yếu tố cho nó. Trong phần tiếp theo, chúng ta sẽ nói về việc lặp lại các yếu tố của một mảng lồng nhau trong JavaScript.

Cách lặp lại các yếu tố của mảng lồng trong JavaScriptfirst loop “for” loop will iterate over the outer array elements according to its size and its nested “for” loop will perform the iteration over the inner sub-arrays:

Bạn có thể biết rằng JavaScript trên mạng cho vòng lặp chủ yếu được sử dụng để lặp lại các yếu tố của một mảng. Tuy nhiên, như trong trường hợp của chúng tôi, chúng tôi có một mảng lồng nhau của người Viking, vì vậy chúng tôi sẽ thêm hai vòng lặp cho các vòng lặp được lồng trong cái kia. (leti = 0; i<hobbies.length; i++) {
    varinnerArrayLength = hobbies[i].length;
     for (let j = 0; j <innerArrayLength; j++) {
        console.log('[' + i + ',' + j + '] = ' + hobbies[i][j]);
    }
}

Ví dụ: Cách lặp lại các yếu tố của mảng lồng trong JavaScripthobbies” nested array:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Vòng lặp đầu tiên cho vòng lặp cho vòng lặp sẽ lặp lại trên các phần tử mảng bên ngoài theo kích thước của nó và vòng lặp của nó cho vòng lặp của nó sẽ thực hiện phép lặp qua các mảng phụ bên trong:ForEach()” method for the same purpose.

for (leti = 0; i

Hoạt động lặp được chỉ định sẽ hiển thị tất cả các yếu tố của "Sở thích mảng lồng nhau:flatten the created nested array to reduce its dimensionality.

Bạn cũng có thể sử dụng phương thức Foreach () cho cùng một mục đích.Array.flat()” method is embedded in ES6, which assists in flattening a nested JavaScript Array. This method returns a new array after concatenating all of the sub-arrays elements.

Cách làm phẳng một mảng lồng nhau trong JavaScript

Có một số kịch bản nhất định trong đó bạn có thể cần tạo một mảng bao gồm tất cả các phần tử mảng JavaScript lồng nhau theo thứ tự ban đầu của chúng. Nếu đó là trường hợp, thì hãy làm phẳng mảng lồng được tạo để giảm kích thước của nó.hobbies” array, we will execute the following code in the console window:

Phương thức của Array Array.flat () được nhúng trong ES6, hỗ trợ làm phẳng một mảng JavaScript lồng nhau. Phương pháp này trả về một mảng mới sau khi kết hợp tất cả các phần tử phân nhóm. flatArray= hobbies.flat();

Ví dụ: Cách làm phẳng một mảng lồng trong JavaScriptlog(flatArray);

Chẳng hạn, để làm phẳng mảng sở thích của người Viking, chúng tôi sẽ thực thi mã sau trong cửa sổ bảng điều khiển:hobbies.flat()” method will reduce the dimensionality of the “hobbies” array and flatten the elements of the inner array:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

const FlatArray = Sở thích.flat ();

Console.log (FlatArray);pop()” method. The “pop()” method typically deletes the last inner-array from a nested array; however, it also helps in removing elements from inner arrays.

Phương thức đã cho là Sở thích.

Cách xóa các yếu tố của mảng lồng trong JavaScriptpop()” method, we have the following sub-arrays in the “hobbies” nested array:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Để loại bỏ các phần tử khỏi bất kỳ mảng con nào của một mảng lồng nhau, hãy sử dụng phương thức pop pop (). Phương thức pop pop () thường xóa mảng bên trong cuối cùng khỏi một mảng lồng nhau; Tuy nhiên, nó cũng giúp loại bỏ các yếu tố từ các mảng bên trong.pop()” method, the last sub-array will be deleted along with its elements:

hobbies.pop();pop();

Console.Table (Sở thích);table(hobbies);

Khi các sở thích đã cho.push () đã được thực thi, nó sẽ thêm mảng con được chỉ định ở cuối mảng Sở thích của Hồi giáo:

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Trong khi đó, để chèn một mảng con ở giữa các mảng bên trong khác, hãy sử dụng phương thức splice splice () theo cách sau:sub-array”, we will iterate through the “hobbies” array using the “forEach()” method, and at each iteration the “pop()” method deletes the element positioned at the first index:

Sở thích.Splice (1, 0, ['hát', 3]);forEach((hobby) => {
    hobby.pop(1);
});
console.table(hobbies);

Tại đây, phương thức Sở thích của người Viking.Splice () sẽ ghi đè lên mảng Sở thích của người Viking và thêm vào [‘Singing, 3]

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Cho đến thời điểm này, chúng tôi đã học được quy trình để tạo ra một mảng lồng nhau và thêm các yếu tố cho nó. Trong phần tiếp theo, chúng ta sẽ nói về việc lặp lại các yếu tố của một mảng lồng nhau trong JavaScript.

Cách lặp lại các yếu tố của mảng lồng trong JavaScript

Bạn có thể biết rằng JavaScript trên mạng cho vòng lặp chủ yếu được sử dụng để lặp lại các yếu tố của một mảng. Tuy nhiên, như trong trường hợp của chúng tôi, chúng tôi có một mảng lồng nhau của người Viking, vì vậy chúng tôi sẽ thêm hai vòng lặp cho các vòng lặp được lồng trong cái kia.nested array. After creating a JavaScript nested array, you can use the “push()” and “splice()” method for adding elements, “for loop” and “forEach()” method to iterate over the elements of the inner arrays, “flat()” method for reducing the dimensionality, and “pop()” method to delete sub-arrays or their elements from the nested arrays. This write-up explained the working of nested loops in JavaScript.

Thông tin về các Tác giả

Hướng dẫn how to create nested array in javascript - cách tạo mảng lồng nhau trong javascript

Tôi là một người đam mê Linux, tôi thích đọc mọi blog Linux trên Internet. Tôi có bằng thạc sĩ về khoa học máy tính và đam mê học tập và giảng dạy.

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

var nestedArray = [[giá trị, [giá trị tổ.
VAR: VAR được cho là khai báo loại JavaScript.....
NestedArray: Đó là mảng bên ngoài.....
[]: Đó là biểu tượng khai báo mảng ..

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

JavaScript cho phép chúng tôi tạo mảng bên trong mảng được gọi là mảng lồng nhau.Mảng lồng có một hoặc nhiều mảng là phần tử của một mảng.. Nested Arrays have one or many arrays as the element of an array.

Làm thế nào để bạn tạo 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.Using an array literal is the easiest way to create a JavaScript Array. Syntax: const array_name = [item1, item2, ...]; It is a common practice to declare arrays with the const keyword.

Chúng ta có thể tạo mảng bên trong đối tượng trong JavaScript không?

Một mảng có thể được chèn vào hàm với hàm push (), dưới đây ví dụ minh họa cách tiếp cận trên: Ví dụ 1: javascript., below examples illustrate the above approach: Example 1: Javascript.