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