Об'єкт Array призначений для зберігання масивів даних. Масив – це впорядкований набір елементів.
Доступ до окремого елемента здійснюється на ім'я та індекс (номер). Нумерація елементів JavaScript починається з нуля.
Існує два варіанти синтаксису для створення порожнього масиву:
Практично завжди використовується другий варіант синтаксису.
У дужках ми можемо вказати початкові значення елементів:
Вивести масив цілком можна за допомогою alert або console.log.

Результат:

За допомогою цієї властивості можна визначити загальну кількість елементів масиву.
Довжина масиву заздалегідь не задається. Наприкінці масиву можна додати ще елементи.



У цьому прикладі спочатку виводиться число 4, так як присвоєно значення чотирьом елементам масиву. Тому довжина масиву дорівнює 4.
Потому виводиться число 4, так надали значення ще одному елементу і довжина масиву стала дорівнює 5.
Для масиву Birds доданий відразу п'ятий (було три), тепер довжина дорівнює шести.
Масив можна заповнювати не так на етапі його створення, та був. У наступному прикладі я спочатку оголосив, що змінна arr - масив, а потім заповнив його даними:
var arr = []
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
alert(arr) //за допомогою alert виводимо вміст масиву
Також можна надходити і з об'єктами:
var obj = {};
obj['Коля'] = 100;
obj['Вася'] = 200;
obj['Петя'] = 300;
for (let i=0; i – працює швидше за все, сумісний зі старими браузерами.
for (let item of arr) – сучасний синтаксис лише для значень елементів (до індексів немає доступу).
- ніколи не використовуйте для масивів.
Масиви надають безліч методів.
Методи arr.indexOf, arr.lastIndexOf та arr.includes мають однаковий синтаксис і роблять по суті то те саме, що й їх рядкові аналоги, але працюють з елементами замість символів:
Методи використовують суворе порівняння ===. Отже, якщо шукаємо false, він знаходить саме false, а чи не нуль.
Якщо ми хочемо перевірити наявність елемента, і немає необхідності знати його точний індекс, тоді переважним є arr.includes.
Крім того, дуже незначною відмінністю includes є те, що він правильно обробляє NaN на відміну від indexOf/lastIndexOf
Метод arr.forEach дозволяє запускати функцію кожного елемента масиву.
Його синтаксис:
arr.forEach(function(item, index, array) {
// ... робити щось з item
});
var arr = []; //створюємо масив arr
Поки що створений нами масив не містить жодних даних. Заповнимо його назвами днів тижня:
var arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
Кожне значення списку, який ми записали до масиву (у нашому випадку щодня тижня), називається елементом масиву.
Елементи розділяються між собою комою. Після цієї коми можна ставити прогалини, а можна й не ставити.
Зверніть увагу на те, що назви днів тижня є рядками і тому взяті в лапки. Крім рядків у масиві можна зберігати числа, і їх у лапки ми не беремо:
//У масиві можна зберігати як рядки, так і числа:
var arr = ['пн', 256, 'ср', 34, 38, 'сб', 95];
Припустимо, ми хочемо вивести на екран середовище за допомогою складеного масиву днів тижня.
Робиться це так: потрібно після змінної масиву (у нашому випадку arr) написати квадратні дужки [ ], а в них вказати порядковий номер елемента, який ми хочемо вивести: arr[3]. Здавалося б, що порядковий номер середовища – це три, але це не так. Тому що у програмуванні нумерація починається з нуля. Тому 0 – це понеділок, 1 – це вівторок, а 2 – це середа.
//Виведемо слово 'СР':
var arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
alert(arr[2]);
Заповнити одновимірний цілий масив випадковими числами з (10;20) і вивести на екран.

Даний одновимірний цілісний масив. Знайти у ньому першу парне число та його індекс. Якщо парних чисел немає, вивести повідомлення.

У попередньому прикладі, щоб звернутися до потрібного елемента масиву, ми писали у квадратних дужках його порядковий номер (Нумерація починається з нуля, якщо ви вже забули). Ці порядкові номери називаються ключами масиву.
Тобто ми отримували значення елемента масиву за його ключем.
У нашому випадку JavaScript сам визначав ключі для елементів - це були порядкові номери. Іноді це може виявитися незручним - Наприклад, якщо ми хочемо вивести на екран назву третього дня тижня (середу), то повинні написати у квадратних дужках цифру 2, а чи не 3.
Тому в JavaScript можна вказати ключі у явному вигляді - так, як нам потрібно. Робиться це за допомогою об'єктів (в інших мовах програмування вони називаються асоціативними масивами). Об'єкти створюються за допомогою фігурних дужок { }, всередині яких пишуться елементи цього об'єкта у форматі ключ: значення.
Давайте зробимо так, щоб понеділок мав ключ 1, а не нуль, як було раніше (і всім іншим дням додамо одиницю):
//Вкажемо ключі у явному вигляді:
var obj = {1: 'пн', 2: 'вт', 3: 'ср', 4: 'чт', 5: 'пт', 6: 'сб', 7: 'вс'};
alert(obj[1]); //виведе 'пн'
Синтаксис тут такий: ключ, потім йде двокрапка :, а потім значення.
Ключі не обов'язково мають бути числами, вони можуть бути і рядками. Зробимо масив, у якому ключами будуть імена працівників, а елементами – їх зарплати:
//Масив (об'єкт) працівників:
var obj = {'Коля': 200, 'Вася': 300, 'Петя': 400};
Дізнаємося зарплату Васі:
var obj = {'Коля': 200; 'Вася': 300;
alert(obj['Вася']); //Виведе 300
Крім того, лапки навколо рядкових ключів можна і не ставити:
var obj = {key1: 200, key2: 300, key2: 400};
alert(obj['key1']); //виведе 200
Проте, такі ключі накладаються обмеження: вони не повинні починатися з цифри, не повинні мати символу дефісу або символу пробілу всередині.
Якщо у вас є такий ключ - просто візьміть його в лапки і все буде ок.
Існує й інший спосіб звернутися до елемента об'єкта - Використовуючи звернення не через квадратні дужки, а через точку: не obj['key'], а obj.key.
У цьому випадку кажуть, що ми звертаємося до властивості об'єкт.
Дивіться приклад:
var obj = {key1: 200, key2: 300, key2: 400};
alert(obj.key1); //Виведе 200
При такому способі звернення до назв властивостей (тобто ключів) накладаються обмеження: вони не повинні починатися з цифри, не повинні мати символу дефісу або символу пробілу всередині.
Якщо у вас є такий ключ – використовуйте звернення через квадратні дужки.
Замість { } та [ ] можна користуватися Object() та Array() відповідно (це просто альтернативний синтаксис).
Давайте створимо об'єкт другим синтаксисом:
Давайте створимо масив другим синтаксисом:
var arr = Array('пн', 256, 'ср', 34, 38, 'сб', 95);
Створення об'єкта через { } і через Object() еквівалентно, ви можете користуватися тим способом, який вам зручніше.
А ось із масивом не все так просто. Різниця між ними проявляється у випадку, якщо ви хочете зробити масив, що складається з одного елемента, який буде цілим числом, ось так:
var arr = Array(10);
В цьому випадку отримаємо не такий масив:
var arr = [10];
А ось такий:
var arr = [,,,,,,,,,];
Це буде масив, що складається з 10 порожніх елементів. (їх значення буде undefined), а не масив з одного елемента 10, як ми хотіли б.
Ми можемо використовувати квадратні дужки в літеральній нотації для створення обчислюваної властивості.
let fruit = prompt("Який фрукт купити?", "apple");
let bag = {
[fruit]: 5, // ім'я властивості буде взято зі змінної fruit
};
alert (bag.apple); // 5, якщо fruit="apple"
Сенс обчислюваної властивості простий: запис [fruit] означає, що ім'я властивості необхідно взяти зі змінної fruit. І якщо відвідувач введе слово "apple", то в об'єкті bag тепер лежатиме властивість{apple: 5} .
Елементи масиву можуть бути не тільки рядками та числами, а й масивами. Тобто у нас вийде масив масивів або багатомірний масив.
Давайте зробимо масив студентів students, який міститиме два підмасиви: студенти чоловічої статі та жіночої:
//Багатомірний масив студентів:
var students = {
'boys': ['Коля', 'Вася', 'Петя'],
'girls': ['Даша', 'Маша', 'Ліна'],
};
Щоб вивести якийсь елемент із багатовимірного масиву, слід писати вже не одну пару [ ], а дві: students['boys'][0] – так ми виведемо 'Коля'.
Давайте заповнимо масив десятьма іксами 'x'. Для цього скористаємося методом push:
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push('x');
}
console.log(arr); //виведе ['x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x']
Давайте тепер заповнимо масив числами від 1 до 10:
var arr = [];
for (var i = 1; i <= 10; i++) {
arr.push(i);
}
console.log(arr); //виведе [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Можна не використовувати push, а вказати ключі безпосередньо:
var arr = [];
for (var i = 0; i < 10; i++) {
arr[i] = 'x';
}
console.log(arr); //виведе ['x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x']
var arr = [];
for (var i = 0; i < 10; i++) {
arr[i] = i + 1;
}
console.log(arr); //виведе [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Давайте з масиву ['a', 'b', 'c', 'd', 'e'] зробимо ['e', 'd', 'c', 'b', 'a']. Для цього переберемо вихідний масив з кінця і запишемо його елементи до нового масиву - вони йдуть у зворотному порядку:
var arr = ['a', 'b', 'c', 'd', 'e'];
var result = [];
for (var i = arr.length - 1; i >= 0; i--) {
result.push(arr[i]);
}
console.log(result); //виведе ['e', 'd', 'c', 'b', 'a']
Давайте поміняємо ключі та значення в об'єкті, наприклад з {a: 1, b: 2, c: 3, d: 4, e: 5} зробимо {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: ' e'}.
Для цього переберемо циклом for-in вихідний об'єкт і створимо у своїй новий об'єкт result. Ключами нового об'єкту зробимо елементи старого (це obj[key]), а значення нового об'єкта - ключі старого (це key):
var obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
var result = {};
for (var key in obj) {
result[obj[key]] = key;
}
console.log(result); //виведе {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
Нехай даний масив ['a', 'b', 'c', 'a', 'a', 'b']. Давайте підрахуємо кількість однакових елементів у цьому масиві і зробимо результат як об'єкта {a: 3, b: 2, c: 1}.
Для вирішення зробимо об'єкт count з початковим значенням {a:0, b:0, c:0}. Перебиратимемо масив циклом і збільшуватимемо відповідне значення об'єкті count. Наприклад: якщо поточний елемент масиву - це 'a', то збільшимо count['a'] на одиницю - ось так: count['a']++.
Тільки замість 'a' слід підставляти поточний елемент масиву, так: count[arr[i]]++. Давайте напишемо остаточний код:
var arr = ['a', 'b', 'c', 'a', 'a', 'b'];
var count = {a: 0, b: 0, c: 0};
for (var i = 0; i < arr.length; i++) {
count[arr[i]]++;
}
console.log(count); //виведе {a: 3, b: 2, c: 1}
Підемо далі: те, що об'єкт count має початкове значення {a: 0, b: 0, c: 0} - не дуже зручно, адже ми зазвичай не знаємо, які елементи є у масиві.
Нехай об'єкт count формується автоматично таким чином: якщо такого елемента в count ні, йому слід присвоїти значення 1, і якщо є - просто збільшити значення на одиницю:
var arr = ['a', 'b', 'c', 'a', 'a', 'b'];
var count = {};
for (var i = 0; i < arr.length; i++) {
if (count[arr[i]] === undefined) {
count[arr[i]] = 1;
} else {
count[arr[i]]++;
}
}
console.log(count); //выведет {a: 3, b: 2, c: 1}
Нехай дано наступний двовимірний масив:
var arr = [[1, 2, 3, 4, 5], [6, 7, 8], [9, 10]] ;
Давайте виведемо всі його елементи на екран. Для цього нам необхідно запустити два вкладені один в одного цикли:
var arr = [[1, 2, 3, 4, 5], [6, 7, 8], [9, 10]];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
alert(arr[i][j]);
}
}