Essential JavaScript

Arrays of Arrays

Arrays can contain any values, including other arrays.

An array that contains other arrays is a multidimensional array.

Multidimensional arrays are used to represent tables and other grid structures.

You may have played a video game that used a tile map grid. Such maps are stored as two-dimensional arrays.

Creating a 2D array

To create a 2D array, you can first create the individual arrays that will go inside the main array:

const row1 = [1, 2, 3];
const row2 = [4, 5, 6];
const row3 = [7, 8, 9]
const grid = [row1, row2, row3];
console.log(grid);

The above example clearly shows the individual row arrays and the grid that contains each row.

We could also define the 2D grid array all at once:

const grid = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];
console.log(grid);

Accessing values

Accessing values in a 2D array is much like accessing the values in a flat array.

We use bracket notation to get a value at a particular index:

  • The first set of brackets will return one of the arrays inside the main array.
  • The second set of brackets will return a value from that inner array.
const grid = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];

const row1 = grid[0];
console.log(row1); // [1, 2, 3]

const row1cell1 = grid[0][0];
console.log(row1cell1); // 1

const row3cell2 = grid[2][1];
console.log(row3cell2); // 8

Iterate a 2D array

Iterating through all the elements of a 2D array requires two nested for loops:

const grid = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];
for (let rowIndex = 0; rowIndex < grid.length; rowIndex++) {
  const row = grid[rowIndex];
  for (let cellIndex = 0; cellIndex < row.length; cellIndex++) {
    const cell = row[cellIndex];
    console.log(rowIndex, cellIndex, cell);
  }
}

Learning Goals

Code Editor