Масиви
Last updated
Was this helpful?
Last updated
Was this helpful?
... з циклами ми круті. З масивами ми вдвічі крутіші.
... тут ми говоримо: створи новий порожній масив, і проасоціюй його зі змінною 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), то природно для заповнення масиву потрібно звертатися до "неіснуючих" комірок. Таким чином власне заповнюючи масив.
Про масиви (uk.javascript.info)
Ще про масиви (яваскрипт.укр)
Про об'єкти (uk.javascript.info)
Виникли питання або труднощі? Зверніться за допомогою до Ш++.