Масиви
Last updated
Last updated
... з циклами ми круті. З масивами ми вдвічі крутіші.
... тут ми говоримо: створи новий порожній масив, і проасоціюй його зі змінною array
(назва може бути будь-якою).
Що це значить? Тепер у нас є безмежна кількість звичайних змінних.
Їх імена: array[0]
, array[1]
, array[2]
, array[3]
.....
Радимо сприймати ці змінні як абсолютно незалежні, а про змінну array
(сам масив) забути зовсім. Її "не існує", є лише array[0]
, array[1]
, array[2]
, array[3]
.....
Що лежить там? Нічого, як і в звичайних змінних. В JavaScript це називається undefined
. Спробуйте вивести на екран вміст array[0]
і ви побачите як це провізуалізується.
Добре, тепер у нас є дуже багато змінних. Що зазвичай з ними роблять?
зберігають кольори кожного пікселя картинки
зберігають здоров'я / набої всіх гравців в грі
зберігають імена всіх учнів
зберігають координати кожної з 1000 частинок при малюванні анімованого фонтану
і таке інше
Виходить, масиви — це контейнери, в яких можуть зберігатися багато значень (а не одне, як у звичайних змінних).
Елементи масиву — це змінні. Тобто, з ними можна робити все, що і зі звичайними змінними й поза масивом. Єдина різниця: у масиві змінні не мають імен, замість імені — порядковий номер (індекс).
Пам'ятаєте аналогію про змінні-коробки з попередніх розділів? Якщо продовжити, можна уявити масив коробкою, в якій лежать інші коробки(змінні).
Масив — це скільки завгодно довгий набір нумерованих значень. Ці значення можуть бути будь-якого типу. Зараз ми створюємо масив відразу з елементами
Масив також може не містити жодного елементу при створенні.
Як ви помітили, щоб працювати з елементом масиву, треба вказати його номер (індекс). Найперший елемент масиву має індекс 0.
Сподіваюся ви звернули увагу на array[32-30+array[0]]
У цьому сила масивів: індекс можна вирахувати. Про це далі.
Неіснуючі або невизначені елементи масиву можна проініціалізувати.
Замість нудного...
...скористаємось циклами:
Зверніть увагу на вміст комірки з індексом 10.
Елементи масиву можна перевизначити. Взагалі, повторимося, елементи масиву - це звичайні змінні, тому нічого нового ми вам не розповідаємо
Розмір масиву зазвичай на 1 більше, ніж індекс останнього ініціалізованого елемента.
Для того, щоб обійти масив (тобто по черзі попрацювати з кожним його елементом), зручно використовувати цикли. Для обходу масиву можна використовувати такий шаблон коду:
Наприклад, збільшимо кожен елемент масиву на одиницю.
Подивимося тепер на цей приклад:
Розгадка полягає в тому, що масиви не лежать в змінних. У змінних лежать посилання на масиви. А значить, при присвоєнні ми не будемо копіювати масив.
Поки що неважливо знати деталі, а може і важливо :)
Про багатовимірні масиви почитайте в інтернеті. Там нічого складного, просто масиви масивів, і вкладені цикли, щоб працювати з ними. Завдання Ш++ на вступному тестуванні зазвичай не вимагають вміння працювати з багатовимірними масивами.
Не виходьте за межі масиву! (тут слово "межа" означає все що менше ніж 0 або більше .length-1
) Якщо ви звертаєтеся для читання значень комірки, якої не існує, то вам повернеться значення undefined
. Якщо ж ви запишете число в елемент масиву, якого не існує, то масив автоматично розшириться.
Хоча якщо у вас масив порожній (тобто його довжина дорівнює 0), то природно для заповнення масиву потрібно звертатися до "неіснуючих" комірок. Таким чином власне заповнюючи масив.
В планах — перезаписати це відео українською. Якщо хочете допомогти та можете зробити це якісно — долучайтесь, так переклад з'явиться швидше. Щодо всіх питань з цього приводу пишіть на info@programming.org.ua
Про масиви (uk.javascript.info)
Ще про масиви (яваскрипт.укр)
Про об'єкти (uk.javascript.info)
Виникли питання або труднощі? Зверніться за допомогою до Ш++.