Масиви
learn.javascript.ru/array-methods
Визначення масива
Масив - впорядкований набір елементів, що зберігаються послідовно, мають порядковий номер (індекс).
В багатьох мовах програмування масиви можуть складатися тільки з однотипних елементів: лише з чисел, або лише зі строк, лише з об'єктів і т.д.
В JavaScript масиви можуть складатися з різнотипних елементів, елементи масива можна змінювати. В деяких мовах програмування масиви є статичними, незмінними.
Створення масива:
let a = []; // порожній масив
let m = [3, 5, 7];
let x = 'a',
y = 70.5,
z = [1, 1, 1];
let arr = ['hello', x, NaN, y, false, z, {}];
Масиви мають властивість .length - довжина масива, кількість елементів в масиві.
console.log('Довжина масива:', arr.length);
console.dir(arr);
Елементи масива можна міняти:
arr[0] = 42;
arr[1] = 'hey!';
arr[arr.length - 1] = [];
console.log(arr);
Елементи масива можна задавати:
let a = [];
a[12] = -17;
console.log(a.length);
console.log(a);
При цьому елементи з 0 по 11 будуть створені, але матимуть тип undefined.
Елементи можна добавляти в кінець:
a[a.length] = 'добавити';
a[a.length] = 'в';
a[a.length] = 'кінець';
console.log(a.length);
console.log(a);
Елементи можна видаляти:
delete a[13];
a[14] = undefined;
console.log(a.length);
console.log(a);
Створіть двовимірний масив 3 х 3, заповнений числами від 1 до 9, виведіть в консоль.
Звернення до елементів другого порядку:
a[1][0] = 400;
a[1][1] = 500;
a[1][2] = 600;
Перебор такого масива здійснюється двома циклами:
for (let i = 0; i < a.length; i++) {
for (let j = 0; j < a[i].length; j++) {
console.log(a[i][j]++);
}
}
console.log(a);
Також можуть бути багатовимірні масиви.
В JavaScript немає ніякого обмеження на вкладеність масивів один в один, використання будь-яких елементів як елементів масивів.
В багатьох строготипізованих мовах програмування багатовимірні масиви можуть бути лише "прямокутні", "паралелепіпедні" і т.д. - це називається матриця.
В JS таких матриць не існує, оскільки сусідні внутрішні масиви можуть мати будь-яку розмірність, чи навіть можуть бути не масивами.