Skip to main content

Як оголосити двовимірний масив чисел?

1. Найпростіший спосіб - number[][]

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

Тут:

  • matrix - це масив;
  • кожен елемент matrix[i] - це масив чисел (number[]);
  • кожен елемент matrix[i][j] - це конкретне число (number).

Перевірка типів

javascript
matrix[0][1]; // number matrix[1]; // number[] matrix[2][2] = 10; // можна matrix.push([11, 12, 13]); // додавання рядка matrix.push([1, "2", 3]); // Помилка: "2" не number

2. Альтернатива через generic-запис

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

Еквівалентно number[][]. Просто інший (більш формальний) запис - зручний при складних типах.


3. Створення двовимірного масиву програмно

Через 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] // ]

Через вкладені цикли

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. Незмінна (readonly) матриця

Якщо потрібно заборонити зміни:

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

Тепер не можна ані змінити рядки, ані їхні елементи:

javascript
matrix[0].push(5); // Помилка matrix.push([5, 6]); // Помилка

5. Тривимірні та більше масиви

Той самий принцип:

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

number[][][] = масив, де кожен елемент - number[][].


Підсумок

Що описуєСинтаксисПриклад
Масив чиселnumber[][1,2,3]
Масив масивів чисел (2D)number[][][[1,2],[3,4]]
Generic-формаArray<Array<number>>[[1,0],[0,1]]
Незмінний 2D масивreadonly (readonly number[])[][[1,2],[3,4]]
3D масивnumber[][][][[[1,2],[3,4]]]

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.