3. Массивы
55
Вводя
dinosaursAndNumbers[2][0];, мы просим JavaScript обра-
титься к индексу 2 массива
dinosaursAndNumbers, где находится
массив
["трицератопс", "стегозавр", 3627.5], и вернуть значе-
ние с индексом 0 из этого вложенного массива — это
первый элемент,
"трицератопс". На рис. 3.1 показаны индексы для этих массивов.
Работаем с массивами
Работать с массивами вам помогут
свойства и
методы. Свойства хранят
различные сведения о массиве, а методы обычно либо изменяют его,
либо возвращают новый массив. Давайте разберемся.
Длина массива
Порой нужно знать, сколько в
массиве элементов. Например, если снова
и снова добавлять динозавров в массив
dinosaurs, вы можете забыть,
сколько их теперь всего.
Для этого есть свойство
length (длина), хранящее количество эле-
ментов в массиве. Чтобы узнать длину массива, просто добавьте
.length
после его имени. Давайте посмотрим, как это работает. Но сначала соз-
дадим новый массив с
тремя элементами:
var maniacs = ["Якко", "Вакко", "Дот"];
maniacs[0];
"
Якко
"
maniacs[1];
"
Вакко
"
maniacs[2];
"
Дот
"
Чтобы узнать длину этого массива, добавим
.length к maniacs:
maniacs.length;
3
JavaScript сообщает, что в массиве 3 элемента, и мы знаем, что их
индексы — 0, 1 и 2. Отсюда следует полезное наблюдение: последний
индекс массива всегда на единицу меньше длины этого массива. Это
значит, что есть простой способ получить последний элемент массива,
какой бы ни была его длина:
maniacs[maniacs.length - 1];
"
Дот
"
Якко, Вакко
и Дот
— герои
мультсериала
«Озорные ани-
машки» (англ.
Animaniacs)
о семейке
Уорнер, соз-
данного ком-
панией Warner
Bros.
56
Часть I. Основы
Мы попросили JavaScript вернуть элемент из нашего массива, но вме-
сто числового индекса ввели в
квадратных скобках выражение: длина
массива минус 1. JavaScript нашел свойство
maniacs.length со значе-
нием 3, вычел 1, получив 2, и наконец вернул элемент с индексом 2 — это
и есть последний элемент,
"Дот".
Добавление элементов в массив
Чтобы добавить элемент к концу массива, можно воспользоваться мето-
дом
push. Введите .push после имени массива, а после в круглых скоб-
ках укажите элемент, который нужно добавить:
var animals = [];
animals.push("Кот");
1
animals.push("Пес");
2
animals.push("Лама");
3
animals;
["
Кот
", "
Пес
", "
Лама
"]
animals.length;
3
Командой
var animals = []; мы создали пустой мас-
сив
animals, а затем
методом push добавили туда элемент
"Кот". Потом снова использовали push, добавив "Пес",
а затем
"Лама". Запросив теперь содержимое массива
animals, мы видим, что "Кот", "Пес" и "Лама" стоят там
в том же порядке, в каком мы их добавляли.
Запуск
метода в программировании называется вызо-
вом метода. При вызове метода push происходят две вещи.
Во-первых, в массив добавляется элемент, указанный в скоб-
ках. Во-вторых,
метод задает новую длину массива. Именно
эти значения длины появляются в консоли после каждого
вызова
push.
Чтобы добавить элемент в начало массива, используйте
метод
.unshift(элемент):
animals;
["
Кот
", "
Пес
", "
Лама
"]
animals[0];
"
Кот
"
animals.unshift("Мартышка");
4
animals;
Push
—
буквально
«протолкнуть,
добавить»
Animals
—
животные
3. Массивы
57
["
Мартышка
", "
Кот
", "
Пес
", "
Лама
"]
animals.unshift("Белый медведь");
5
animals;
["
Белый медведь
", "
Мартышка
", "
Кот
", "
Пес
", "
Лама
"]
animals[0];
"
Белый медведь
"
animals[2];
"
Кот
"
Мы начали с массива, созданного раньше, —
["Кот", "Пес", "Лама"]. Затем добавили в его
начало элементы
"Мартышка" и "Белый медведь",
отчего остальные элементы сдвинулись вперед —
при каждом добавлении их индексы увеличивались
на 1. В результате элемент
"Кот", у
которого раньше
был индекс 0 , оказался под индексом 2 .
Как и
push, метод unshift при каждом вызове
задает новую длину массива.
Удаление элементов массива
Убрать из массива последний элемент можно, добавив к его имени
.pop(). Метод pop делает сразу два дела: удаляет последний элемент
из массива и возвращает этот элемент в
виде значения. Для примера
начнем с нашего массива
animals ["Белый медведь", "Мартышка",
"Кот", "Пес", "Лама"]. Далее создадим новую переменную lastAnimal
и сохраним в ней последний элемент, вызвав
animals.pop().
animals;
["
Белый медведь
", "
Мартышка
", "
Кот
", "
Пес
", "
Лама
"]
var lastAnimal = animals.pop();
lastAnimal;
"
Лама
"
animals;
["
Белый медведь
", "
Мартышка
", "
Кот
", "
Пес
"]
animals.pop();
"
Пес
"
animals;
["
Белый медведь
", "
Мартышка
", "
Кот
"]
animals.unshift(lastAnimal);
4
animals;
["
Лама
", "
Белый медведь
", "
Мартышка
", "
Кот
"]
При вызове
animals.pop() в строке последний элемент массива
animals, "Лама", был возвращен и сохранен в переменной lastAnimal.
Pop
—
буквально
«выдавить»
Last animal
—
последнее
животное