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:
matrixis 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 number2. 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]); // Error5. 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 isnumber[][].
Summary
| What it describes | Syntax | Example |
|---|---|---|
| An array of numbers | number[] | [1,2,3] |
| An array of arrays of numbers (2D) | number[][] | [[1,2],[3,4]] |
| Generic form | Array<Array<number>> | [[1,0],[0,1]] |
| An immutable 2D array | readonly (readonly number[])[] | [[1,2],[3,4]] |
| A 3D array | number[][][] | [[[1,2],[3,4]]] |
Short Answer
Interview readyPremium
A concise answer to help you respond confidently on this topic during an interview.