Читаем JavaScript для детей полностью

индексы — 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 происходят две вещи.

Во-первых, в массив добавляется элемент, указанный в скоб-

ках. Во-вторых, метод задает новую длину массива. Именно

эти значения длины появляются в консоли после каждого

вызова 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 добавляют и удаляют элементы с начала

Перейти на страницу:

Похожие книги