НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

JS Підручник

JS Старт JS Інтро JS Установка JS Виведення JS Інструкції JS Синтаксис JS Коментарі JS Змінні JS Ключове слово Let JS Ключове слово Const JS Оператори JS Арифметичні JS Присвоєння JS Типи даних JS Функції JS Об’єкти JS Події JS Рядки JS Рядкові методи JS Рядковий пошук JS Рядкові шаблони JS Числа JS Числові методи JS Масиви JS Методи масиву JS Сортування масиву JS Ітерація масиву JS Масив Const JS Дати JS Формати дат JS Методи отримання дат JS Методи встановлення дат JS Математичні JS Рандомні JS Булеві JS Порівняння JS Умови JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break & Continue JS Ітерації JS Сети (Набори) JS Мапи JS Typeof JS Перетворення типів JS Побітові JS Регулярні вирази JS Помилки JS Область дії JS Хостинг JS Use Strict JS Ключове слово this JS Функція стрілки JS Класи JS Модулі JS JSON JS Відладка JS Гід по стилю JS Кращі практики JS Поширені помилки JS Продуктивність JS Зарезервовані слова

JS Версії

JS Версії JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS Історія

JS Об’єкти

Визначення об’єктів Властивості об’єкта Методи об’єкта Відображення об’єкта Доступ до об’єктів Конструктори об’єктів Прототипи об’єктів Ітеровані об’єкти Сети (Набори) об’єктів Мапи (Карти) об’єктів Довідник об’єктів

JS Функції

Визначення функції Параметри функції Виклик функції Функція call() Функція apply() Функція bind() Закриття функції

JS Класи

Класи. Інтро Успадкування класу Статичні методи

JS Асинхроний

Зворотні виклики Асинхроний Проміси Async/Await

JS HTML DOM

DOM Вступ DOM Методи DOM Документ DOM Елементи DOM HTML DOM Форми DOM CSS DOM Анімація DOM Події DOM Слухач подій DOM Навігація DOM Вузли DOM HTMLCollection DOM NodeList

JS Браузер BOM

JS Вікно JS Скрін JS Локація JS Історія JS Навігатор JS Виринаюче сповіщення JS Таймінг JS Куки

JS Веб API

Веб API Вступ Веб-форми API Веб-історія API Веб-сховище API Веб-воркер API Веб-виборка API Веб-геолокація API

JS AJAX

AJAX Вступ AJAX XMLHttp AJAX Запит AJAX Відповідь сервера AJAX XML Файл AJAX PHP AJAX ASP AJAX База даних AJAX Додатки AJAX Приклади

JS JSON

JSON Вступ JSON Синтаксис JSON та XML JSON Типи даних JSON Аналіз JSON Stringify JSON Об’єкти JSON Масиви JSON Сервер JSON PHP JSON HTML JSON JSONP

JS та jQuery

jQuery Селектори jQuery HTML jQuery CSS jQuery DOM

JS Графіка

JS Графіка JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS Приклади

JS Приклади JS HTML DOM JS HTML Input JS HTML Об’єкти JS HTML Події JS Браузер JS Редактор JS Вправи JS Вікторина JS Сертифікат

JS Довідники

JavaScript Об’єкти HTML DOM Об’єкти

JavaScript. Уроки W3Schools для початківців українською мовою

En

JavaScript Масиви

Масив - це спеціальна змінна, яка може містити більше, ніж одне значення одночасно:

const cars = ["Saab", "Volvo", "BMW"];
Спробуйте самі »

Чому використовують масиви?

Якщо у вас є список елементів (наприклад, список назв автомобілів), зберігання автомобілів в окремих змінних може виглядіти наступним чином:

let car1 = "Saab";
let car2 = "Volvo";
let car3 = "BMW";

Однак, якщо ви хочете перебрати автомобілі та знайти конкретний? А якби у вас було не 3 автомобілі, а 300?

Рішення - масив!

Масив може містити багато значень під одним іменем, і ви можете отримати доступ до значень, лише вказавши номер індексу.


Створення масиву

Використання літералу масиву - найпростіший спосіб створити JavaScript масив.

Синтаксис:

const array_name = [item1, item2, ...];      

Є наступна практика для оголошення масивів за допомогою ключового слова const.

Дізнатись більше про const з масивами в розділі: JS Array Const.

Приклад

const cars = ["Saab", "Volvo", "BMW"];
Спробуйте самі »

Пробіли та перенесення рядка не важливі. Оголошення може займати кілька рядків:

Приклад

const cars = [
  "Saab",
  "Volvo",
  "BMW"
];
Спробуйте самі »

Ви також можете створити масив, а потім надати елементи:

Приклад

const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";
Спробуйте самі »

Використання ключового слова JavaScript new

В наступному прикладі також створюється масив і йому присвоюються значення:

Приклад

const cars = new Array("Saab", "Volvo", "BMW");
Спробуйте самі »

Два наведених вище приклади роблять те саме.

Немає необхідності використовувати new Array().

Для простоти, читабельності та швидкості виконання використовуйте перший (метод літералу масиву).


Доступ до елементів масиву

Ви отримуєте доступ до елементу масиву, посилаючись на номер індексу:

const cars = ["Saab", "Volvo", "BMW"];
let car = cars[0];
Спробуйте самі »

Примітка: Індекси масиву починаються із 0.

[0] є першим елементом. [1] є другим елементом і т.д.


Зміна елементу масиву

Ця інструкція змінює значення першого елементу в cars:

cars[0] = "Opel";

Приклад

const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";
Спробуйте самі »

Доступ до повного масиву

За допомогою JavaScript можна отримати доступ до повного масиву, вказавши ім’я масиву:

Приклад

const cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;
Спробуйте самі »

Масиви - це об’єкти

Масиви - це особливий тип об’єктів. Оператор typeof в JavaScript повертає "об’єкт" для масивів.

Але JavaScript масиви краще за все описувати як масиви.

Масиви використовують числа для доступу для своїх "елементів". В цьому прикладі person[0] повертає John:

Масив:

const person = ["John", "Doe", 46];
Спробуйте самі »

Об’єкти використовують імена для доступу до своїх "членів". В цьому прикладі person.firstName повертає John:

Об’єкт:

const person = {firstName:"John", lastName:"Doe", age:46};
Спробуйте самі »

Елементи масиву можуть бути об’єктами

JavaScript змінні можуть бути об’єктами. Масиви - це особливі види об’єктів.

Із-за цього в одному масиві можуть бути змінні різних типів.

Ви можете мати об’єкти в масиві. Ви можете мати функції в масиві. Ви можете мати масиви в масиві:

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

Властивості і методи масиву

Справжня сила JavaScript масивів - це вбудовані властивості та методи масиву:

cars.length   // Повертає кількість елементів
cars.sort()   // Сортує масив

Методи масиву розглядаються в наступних розділах.


Властивість length (довжина)

Властивість length масиву повертає довжину масиву (кількість елементів масиву).

Приклад

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let length = fruits.length;
Спробуйте самі »

Властивість length завжди на одиницю більше, аніж найбільший індекс масиву.


Доступ до першого елементу масиву

Приклад

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[0];
Спробуйте самі »

Доступ до останнього елементу масиву

Приклад

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[fruits.length - 1];
Спробуйте самі »

Зациклювання елементів масиву

Найбільш безпечний спосіб перебрати масив - це використання циклу for:

Приклад

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fLen = fruits.length;

let text = "<ul>";
for (let i = 0; i < fLen; i++) {
  text += "<li>" + fruits[i] + "</li>";
}
text += "</ul>";
Спробуйте самі »

Ви також можете використовувати функцію Array.forEach():

Приклад

const fruits = ["Banana", "Orange", "Apple", "Mango"];

let text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";

function myFunction(value) {
  text += "<li>" + value + "</li>";
}
Спробуйте самі »

Додавання елементів масиву

Найпростіший спосіб додати новий елемент в масив - використовувати метод push():

Приклад

const fruits = ["Banana", "Orange", "Apple"];
fruits.push("Lemon");  // Додати новий елемент (Lemon) до масиву fruits
Спробуйте самі »

Новий елемент також можна додати в масив, використовуючи властивість length:

Приклад

const fruits = ["Banana", "Orange", "Apple"];
fruits[fruits.length] = "Lemon";  // Додавання "Lemon" до масиву fruits
Спробуйте самі »

ПОПЕРЕДЖЕННЯ!

Додавання елементів з високими індексами може створити невизначені (undefined) "отвори" в масиві:

Приклад

const fruits = ["Banana", "Orange", "Apple"];
fruits[6] = "Lemon";  // Створення undefined "отворів" в fruits
Спробуйте самі »

Асоціативні масиви

Більшість мов програмування підтримують масиви з іменованими індексами.

Масиви з іменованими індексами називаються асоціативними масивами (або хешами).

JavaScript не підтримує масиви з іменованими індексами.

В JavaScript масиви завжди використовують нумеровані індекси.

Приклад

const person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person.length;    // Поверне 3
person[0];        // Поверне "John"
Спробуйте самі »

ПОПЕРЕДЖЕННЯ!!
Якщо ви використовуєте іменовані індекси, JavaScript перевизначить масив на об’єкт.

Після цього деякі методи та властивості масиву будуть давати невірні результати.

Приклад:

const person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
person.length;     // Поверне 0
person[0];         // Поверне undefined
Спробуйте самі »

Відмінності між масивами та об’єктами

В JavaScript масиви використовують нумеровані індекси.

В JavaScript об’єкти використовують іменовані індекси.

Масиви - це особливий вид об’єктів з нумерованими індексами.


Коли використовувати масиви? Коли використовувати об’єкти?

  • JavaScript не підтримує асоціативні масиви.
  • Ви маєте використовувати об’єкти, якщо хочете, щоб імена елементів були рядками (текстом).
  • Ви маєте використовувати масиви, якщо хочете, щоб імена елементів були числами.

JavaScript new Array()

JavaScript має вбудований конструктор масиву new Array().

Але ви можете використовувати [] замість цього.

Це дві різних інструкції створюють новий пустий масив з іменем points:

const points = new Array();
const points = [];

Ці дві різних інструкції створюють новий масив, що містить 6 чисел:

const points = new Array(40, 100, 1, 5, 25, 10);
const points = [40, 100, 1, 5, 25, 10];
Спробуйте самі »

Ключове слово new може продукувати неочікуваний результат:

// Створити масив з трьома елементами:
const points = new Array(40, 100, 1);
Спробуйте самі »
// Створити масив з двома елементами:
const points = new Array(40, 100);
Спробуйте самі »
// Створити масив з одним елементом ???
const points = new Array(40);
Спробуйте самі »

Наступна помилка

const points = [40];

є не такою, як:

const points = new Array(40);
// Створити масив з одним елементом:
const points = [40];
Спробуйте самі »
// Створити масив з 40 undefined елементами:
const points = new Array(40);  
Спробуйте самі »

Як розпізнати масив

Розповсюджене питання: Як дізнатись, чи є змінна масивом?

Проблема в тому, що JavaScript оператор typeof повертає "object":

const fruits = ["Banana", "Orange", "Apple"];
let type = typeof fruits;
Спробуйте самі »

Оператор typeof повертає object, тому що JavaScript масив є об’єктом.

Рішення 1:

Для розв’язання цієї проблеми ECMAScript 5 (JavaScript 2009) визначає новий метод Array.isArray():

Array.isArray(fruits);
Спробуйте самі »

Рішення 2:

Оператор instanceof повертає true, якщо об’єкт створений даним конструктором:

const fruits = ["Banana", "Orange", "Apple"];

fruits instanceof Array;
Спробуйте самі »

Повний довідник масиву

Для більш детального ознайомлення з масивами, відвідайте:

Повний довідник JavaScript масиву на нашому сайті W3Schools українською.

Довідник містить описи та приклади всіх властивостей та методів масиву.

Перевірте себе за допомогою вправ

Вправа:

Отримайте значення "Volvo" з масиву cars.

const cars = ["Saab", "Volvo", "BMW"];
let x = ;