Arrays

Explore arrays, how to create and manipulate them, access elements, and use array methods.


Multidimensional Arrays in JavaScript

What are Multidimensional Arrays?

In JavaScript, a multidimensional array is essentially an array of arrays. Instead of holding simple values like numbers or strings, each element of the outer array holds *another* array. This structure allows you to represent data with more than one dimension, like a table, a matrix, or a grid.

Think of it like a spreadsheet: You have rows, and each row contains cells (columns). Each cell holds a value. A multidimensional array represents this same concept programmatically.

Creating Multidimensional Arrays

You create multidimensional arrays in JavaScript by nesting array literals within each other.

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

// Example of a 3D array (cubes within a larger structure)
const cube = [
  [
    [1, 2], [3, 4]
  ],
  [
    [5, 6], [7, 8]
  ]
];

// You can also initialize an empty multidimensional array and populate it later
const emptyMatrix = [];
emptyMatrix[0] = [1, 2];
emptyMatrix[1] = [3, 4];

console.log(matrix);
console.log(cube);
console.log(emptyMatrix); 

Accessing Elements in Multidimensional Arrays

To access elements within a multidimensional array, you use multiple sets of square brackets []. Each set of brackets corresponds to a dimension.

 const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

// Accessing the element at row 1, column 2 (which is the number 6)
const element = matrix[1][2];
console.log(element); // Output: 6

// Accessing an element in the cube array
const cube = [
  [
    [1, 2], [3, 4]
  ],
  [
    [5, 6], [7, 8]
  ]
];

const cubeElement = cube[0][1][0];  // Accessing 3. First cube, second row, first element.
console.log(cubeElement); // Output: 3 

The key is to start with the outermost array and work your way inward, using the index for each dimension to specify which element you want.

Working with Nested Arrays: Iteration

You can use nested loops (for loops, forEach, etc.) to iterate through multidimensional arrays and access all of their elements.

 const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

// Using nested for loops
for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    console.log(`Element at [${i}][${j}]: ${matrix[i][j]}`);
  }
}

// Using forEach
matrix.forEach(row => {
  row.forEach(element => {
    console.log(element);
  });
}); 

The outer loop iterates through the rows, and the inner loop iterates through the columns in each row.

Applications of Multidimensional Arrays

Multidimensional arrays are useful for representing:

  • Game boards (e.g., tic-tac-toe, chess)
  • Images (each element can represent a pixel)
  • Matrices for mathematical operations
  • Spreadsheet-like data
  • Storing hierarchical data structures

Important Considerations

  • Index starts at 0: Remember that array indices start at 0 in JavaScript.
  • Array Length: The length property of an array gives you the number of elements in that dimension.
  • Jagged Arrays: JavaScript allows for "jagged" arrays, where the sub-arrays don't have to be the same length. This can be useful but also requires careful handling to avoid errors.