Array

Глобальний об'єкт JavaScript Array - це конструктор для масивів, які на високому рівні є спископодібними об'єктами.

Синтаксис:

arrayObj = new Array(); arrayObj = new Array([size]); arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); arrayObj = []; arrayObj = [element0, ..., elementN];

Параметри:

arrayObj - Ім'я змінної, якій присвоюється об'єкт Array.

size - Необов'язковий параметр. Розмір масиву. Оскільки масиви відраховуються від нуля, створеним елементам присвоюються індекси від нуля до size -1.

element0, ..., elementN - Необов'язковий. Елементи, які потрібно помістити в масив. Створює масив з числом елементів n + 1 і значенням length, рівним n + 1. При використанні даного синтаксису необхідно вказувати більше одного елемента.

Опис:

Масиви є спископодібними об'єктами, чиї прототипи містять методи для операцій обходу змінних масиву. Ні розмір JavaScript-масиву, ні типи його елементів не є фіксованими. Оскільки розмір масиву може збільшуватися і зменшуватися в будь-який час, то немає гарантії, що масив виявиться щільним. Тобто, при роботі з масивом може виникнути ситуація, що елемент масиву, до якого ви звернетеся, буде порожнім і поверне undefined. В цілому, це зручна характеристика але якщо ця особливість масиву не бажана в вашому специфічному випадку, ви можете розглянути можливість використання типізованих масивів.

Для доступу до окремих елементів створеного масиву використовуються квадратні дужки "[]". Масиви в JavaScript індексуються з нуля: перший елемент масиву має індекс, що дорівнює 0, а індекс останнього елемента дорівнює значенню length-1.

var mas= new Array(1,2,3,4); mas[0]; //перший елемент масиву з індексом 0 і має значення "1" alert(mas[0]+" "+mas[1]+" "+mas[mas.length-1]); // "1 2 4"

Властивість масивів length взаємопов'язане з числовими властивостями. Деякі вбудовані методи масиву (наприклад, join, slice, indexOf і т.д.) враховують значення властивості length при своєму виклику. Інші методи (наприклад, push, splice і т.д.) в результаті своєї роботи також оновлюють властивість length масиву.

Індекси можна брати в лапки (наприклад mas[ '2'] замість mas[2]), але в цьому немає необхідності. Значення 2 в вираженні mas[2] буде неявно приведено до рядка движком JavaScript через метод перетворення toString. Саме з цієї причини ключі '2' і '02' будуть посилатися на два різних елемента в об'єкті mas.

var mas= new Array("h",8,10); alert('"2": '+mas["2"]+' "02":'+mas["02"]+' 02: '+mas[02]);

Елементи масиву є властивостями, точно такими ж, як, наприклад, властивість toString, проте спроба отримати елемент масиву по імені (індексу) його властивості випаде з синтаксичної помилкою (якщо індекс числовий), оскільки ім'я властивості не є допустимим ім'ям JavaScript. Це не особливість масивів або їх властивостей. В JavaScript до властивостей, що починається з цифри, неможливо звернутися за допомогою точкової нотації (mas.1); до них можна звернутися тільки за допомогою скобковою нотацією. А от якщо індекс буде містити букву то таке звернення можливе:

var mas = new Array(); mas["G"]=5.4; alert(mas.G);

У JavaScript елементу масиву можна присвоювати будь який тип даних: рядок, число, Object, Date, Function, Array.

var mas=new Array(); mas[0] = "масив"; mas[1] = 15; mas[2] = {name:"test"}; mas[3] = new Date(); mas[4] = function(a,b){return a+b;} mas[5] = [1, 2, 3]; alert(mas);

Для проходження масиву використовують цикли. Зазвичай це for але також використовують for...in, for...of.

var mas = new Array(1,2,'1+1'); for(i=0; i<mas.length; i++){ alert( mas[i] ); } var mas = new Array(1,2,'1+1'); for(i in mas){ alert( mas[i] ); } var mas = new Array(1,2,'1+1'); for(a of mas){ alert( a ); }

Багатовимірні масиви:

Двохвимірний масив це масив елементи якого містять значення масив. Звертатися до елементу двохвимірного масиву необхідно за вказанням двох індексів array[index1][index2].

var arr = [ [1,2,3], [4,5,6], [7,8,9], ]; alert(arr[0][2]); //3 // створюємо двохвимірний масив var mas=new Array(); var n=5,m=5; for(i=0;i<n;i++) mas[i]=new Array(m); //заповнюємо двохвимрний масив for(i=0;i<n;i++) for(j=0;j<m;j++) mas[i][j]=Math.random(); //присвоюємо елементу випадкове число //звертаємося до елемента в двохвимірному масиві mas[0][0]; alert( mas[0][2] );

За принципом присвоєнню значенню елементу масиву інший масив у JavaScript можна створювати багатовимірний масив. Це дозволяє створювати масив двохвимірний, трьохвимірний, чотирьохвимірний і т. д.

// створюємо трьохвимірний масив var mas=new Array(); var n=4, m=5, l=5; for(i=0;i<n;i++) { mas[i]=new Array(m); for(j=0;j<m;j++) mas[i][j]=new Array(l); } //заповнюємо трьохвимірний масив for(i=0;i<n;i++) for(j=0;j<m;j++) for(z=0;z<l;z++) mas[i][j][z]=i.toString()+j.toString()+z.toString(); //присвоюємо елементу значення ijz //звертаємося до елемента в трьохвимірному масиві mas[1][0][2]; alert( mas[2][0][2] );

Властивості:

Методи:

Методи які змінюють масив:

Методи які не змінюють масив, а просто повертають його в іншому поданні:

Методи обходу масиву:

Приклад:

var mas = new Array(1,2,3,4,5); alert(mas); var mas = new Array('Іван', 'Петро', 'Василь', 'Олег'); mas.push('Міша'); alert(mas); var arr = [1,'два', '3', 'чотири', 5]; alert(arr);