Last Updated: Feb 3, 2025
Medium

JavaScript Multidimensional Array

Author Sinki Kumari
0 upvote
Table of contents
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

JavaScript Multidimensional Array is a data structure that allows you to store multiple arrays within an array. This type of array can hold more complex data, like tables or grids, where each element of the main array can contain another array. Multidimensional arrays are useful when you need to organize data in rows and columns or when you want to represent more complicated structures, such as matrices.

JavaScript Multidimensional Array

In this article, we will discuss how to create, access, iterate over, add, and remove elements in a JavaScript multidimensional array with proper examples and explanations.

What is a Multidimensional Array in JavaScript?  

A multidimensional array in JavaScript is an array that contains one or more arrays as its elements. Think of it as a container that holds multiple arrays, allowing you to organize data in a structured way. For example, if you need to store data in rows & columns (like a table), a multidimensional array is the perfect tool.  

In simpler terms, a multidimensional array is like a list of lists. A 2D array is the most common type, where each element is itself an array. You can also create 3D arrays, 4D arrays, & so on, depending on your needs.  

Let’s understand how it works:  

1. 2D Arrays: These are arrays of arrays, often used to represent tables or grids. For example, a 2D array can store a matrix of numbers or a list of student grades.  
 

2. 3D Arrays: These are arrays of 2D arrays, often used for more complex data like 3D graphics or multi-level datasets.  
 

3. Higher Dimensions: You can create arrays with even more dimensions, but these are less common & can be harder to manage.  

 

Let’s look at a practical example to understand this better:  

// Example of a 2D array
let studentGrades = [
  ["Alice", 90, 85, 88], // Student 1: Name & grades
  ["Bob", 78, 82, 80],   // Student 2: Name & grades
  ["Charlie", 95, 91, 89] // Student 3: Name & grades
];


// Accessing elements
console.log(studentGrades[0][0]); // Output: "Alice" (Name of the first student)
console.log(studentGrades[1][2]); // Output: 80 (Third grade of the second student)


// Adding a new student
studentGrades.push(["David", 88, 84, 90]);
console.log(studentGrades);
You can also try this code with Online Javascript Compiler
Run Code

 

Output: 

[["Alice", 90, 85, 88], ["Bob", 78, 82, 80], ["Charlie", 95, 91, 89], ["David", 88, 84, 90]]


In this example, we created a 2D array called `studentGrades` to store the names & grades of students. Each inner array represents a student, with the first element being their name & the remaining elements being their grades.  

Creating a Multidimensional Array  

Creating a multidimensional array in JavaScript is straightforward. You can initialize it directly or build it dynamically by adding arrays to an existing array. Let’s discuss both methods in detail with examples.  

Method 1: Direct Initialization  

You can create a multidimensional array by nesting arrays inside another array. This is useful when you already know the structure of your data.  

// Example of a 2D array (matrix)
let matrix = [
  [1, 2, 3], // Row 1
  [4, 5, 6], // Row 2
  [7, 8, 9]  // Row 3
];


console.log(matrix);
You can also try this code with Online Javascript Compiler
Run Code

 

Output: 

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


In this example, we created a 2D array called `matrix` with 3 rows & 3 columns. Each inner array represents a row, & the elements inside represent the columns.  

Method 2: Dynamic Creation  

If you don’t know the structure of your data beforehand, you can create an empty array & add inner arrays dynamically.  

// Creating an empty 2D array
let grid = [];
// Adding rows dynamically
grid.push([1, 2, 3]); // Row 1
grid.push([4, 5, 6]); // Row 2
grid.push([7, 8, 9]); // Row 3
console.log(grid);
You can also try this code with Online Javascript Compiler
Run Code


Output: 

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


Here, we started with an empty array called `grid` & used the `push()` method to add rows dynamically.  

Method 3: Using Loops  

You can also use loops to create & populate a multidimensional array. This is useful when dealing with large datasets or repetitive patterns.  

// Creating a 3x3 grid using loops
let grid = [];
let rows = 3;
let columns = 3;
for (let i = 0; i < rows; i++) {
  grid[i] = []; // Initialize each row as an empty array
  for (let j = 0; j < columns; j++) {
    grid[i][j] = i  columns + j + 1; // Populate each column
  }
}
console.log(grid);
You can also try this code with Online Javascript Compiler
Run Code


Output:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


In this example, we used nested loops to create a 3x3 grid. The outer loop initializes each row, & the inner loop populates the columns with values.  

Method 4: Creating a 3D Array  

You can extend the same concept to create arrays with more dimensions. For example, here’s how to create a 3D array:  

// Creating a 3D array
let cube = [
  [
    [1, 2], // Layer 1, Row 1
    [3, 4]  // Layer 1, Row 2
  ],
  [
    [5, 6], // Layer 2, Row 1
    [7, 8]  // Layer 2, Row 2
  ]
];
console.log(cube);
You can also try this code with Online Javascript Compiler
Run Code


Output: 

[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]


This 3D array represents a cube with 2 layers, 2 rows, & 2 columns.  

Syntax to Create a 2-Dimensional Array

A two-dimensional array in JavaScript is an array of arrays. It can be created using nested arrays.

Example

let matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
console.log(matrix);
You can also try this code with Online PHP Compiler
Run Code

 

Output:

[
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

 

In this example, matrix is a 3x3 array where each row is an individual array.

Properties of Multi-Dimensional Array in JavaScript  

A multidimensional array in JavaScript is essentially an array that contains other arrays as its elements. This structure allows you to store data in a tabular form, making it ideal for handling complex data like matrices, grids, or tables. Let’s take a look at the key properties of multidimensional arrays:  

1. Nested Structure: A multidimensional array is a nested array, meaning it has arrays inside arrays. For example, a 2D array has rows & columns, where each row is an array & each column is an element of that row.  
 

2. Flexible Length: Unlike some other programming languages, JavaScript allows arrays to have varying lengths. This means each inner array in a multidimensional array can have a different number of elements.  
 

3. Zero-Based Indexing: Just like regular arrays, multidimensional arrays use zero-based indexing. The first element of the first array is accessed using `array[0][0]`, the second element of the first array is `array[0][1]`, & so on.  
 

4. Dynamic Nature: JavaScript arrays are dynamic, meaning you can add or remove elements at any time. This applies to multidimensional arrays as well. You can add new rows or columns dynamically.  
 

5. Mixed Data Types: JavaScript arrays can store different data types, including numbers, strings, objects, & even other arrays. This flexibility extends to multidimensional arrays, where each element can be of any type.  

Accessing Elements in a Multidimensional Array

To access an element in a multidimensional array, use array indexing. The first index represents the row, and the second index represents the column.

Example

let numbers = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
];
console.log(numbers[1][2]); // Accessing the element at row index 1, column index 2
You can also try this code with Online PHP Compiler
Run Code

 

Output:

60

 

Here, numbers[1][2] returns 60, which is located in the second row and third column.

Iterating Over a Multidimensional Array

To iterate over a multidimensional array, use nested for loops.

Example

let arr = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr[i].length; j++) {
        console.log(arr[i][j]);
    }
}
You can also try this code with Online PHP Compiler
Run Code

 

Output:

1
2
3
4
5
6
7
8
9

 

The outer loop iterates over rows, and the inner loop iterates over columns, printing each element.

Adding Elements in a Multidimensional Array

To add elements to a multidimensional array, use push() for rows and index assignments for individual elements.

Example:

let myArray = [
    [1, 2],
    [3, 4]
];

// Adding a new row
myArray.push([5, 6]);

// Adding an element in an existing row
myArray[0].push(7);

console.log(myArray);
You can also try this code with Online PHP Compiler
Run Code

 

Output:

[
    [1, 2, 7],
    [3, 4],
    [5, 6]
]

 

Here, we added a new row [5, 6] using push(), and a new element 7 to the first row.

Removing Elements in a Multidimensional Array

To remove elements, use pop() to remove the last row and splice() to remove a specific element.

Example

let data = [
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
];

// Removing the last row
data.pop();

// Removing an element from a specific row
data[0].splice(1, 1); // Removes the second element in the first row

console.log(data);
You can also try this code with Online PHP Compiler
Run Code

 

Output:

[
    [10, 30],
    [40, 50, 60]
]

 

The last row [70, 80, 90] is removed using pop(), and 20 is removed from the first row using splice().

Frequently Asked Questions

How do you declare a multidimensional array dynamically?

You can use loops to create a multidimensional array dynamically, allowing flexibility in size and values.

Can a JavaScript array contain different data types?

Yes, JavaScript arrays can contain elements of different data types, including numbers, strings, and objects.

How do you efficiently search for an element in a multidimensional array?

You can use nested loops or some() to check if an element exists in a multidimensional array efficiently.

Conclusion

In this article, we learned about JavaScript multidimensional arrays, their structure, and how they allow the storage of data in rows and columns, much like a table. We discussed how to access, manipulate, and iterate through multidimensional arrays for various use cases. Understanding this concept helps in organizing complex data and simplifies coding in JavaScript.