Skip to main content

How do you declare a two-dimensional array of numbers?

1. The simplest way - number[][]

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

Here:

  • matrix is an array;
  • each element matrix[i] is an array of numbers (number[]);
  • each element matrix[i][j] is a specific number (number).

Type checking

javascript
matrix[0][1]; // number matrix[1]; // number[] matrix[2][2] = 10; // fine matrix.push([11, 12, 13]); // adding a row matrix.push([1, "2", 3]); // Error: "2" is not a number

2. An alternative via generic notation

javascript
const grid: Array<Array<number>> = [ [1, 0], [0, 1], ];

Equivalent to number[][]. Just a different (more formal) notation - useful for complex types.


3. Creating a two-dimensional array programmatically

Via Array.from

javascript
const rows = 3; const cols = 4; const matrix: number[][] = Array.from({ length: rows }, () => Array(cols).fill(0) ); console.log(matrix); // [ // [0, 0, 0, 0], // [0, 0, 0, 0], // [0, 0, 0, 0] // ]

Via nested loops

javascript
const matrix: number[][] = []; for (let i = 0; i < 3; i++) { matrix[i] = []; for (let j = 0; j < 3; j++) { matrix[i][j] = i + j; } }

4. An immutable (readonly) matrix

If you need to forbid changes:

javascript
const matrix: readonly (readonly number[])[] = [ [1, 2], [3, 4], ];

Now you can neither change the rows nor their elements:

javascript
matrix[0].push(5); // Error matrix.push([5, 6]); // Error

5. Three-dimensional and larger arrays

The same principle:

javascript
const cube: number[][][] = [ [ [1, 2], [3, 4], ], [ [5, 6], [7, 8], ], ];

number[][][] = an array where each element is number[][].


Summary

What it describesSyntaxExample
An array of numbersnumber[][1,2,3]
An array of arrays of numbers (2D)number[][][[1,2],[3,4]]
Generic formArray<Array<number>>[[1,0],[0,1]]
An immutable 2D arrayreadonly (readonly number[])[][[1,2],[3,4]]
A 3D arraynumber[][][][[[1,2],[3,4]]]

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.