Як оголосити двовимірний масив чисел?
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" не number2. Альтернатива через 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.