Выбрать главу

Не обязательно, чтобы все элементы массива были одного типа. Например,

вот массив, в котором хранится число (3), строка ("динозавры"), массив

(["трицератопс", "стегозавр", 3627.5]) и еще одно число (10):

var dinosaursAndNumbers = [3, "динозавры", ["трицератопс", 

Dinosaurs

"стегозавр", 3627.5], 10];

and numbers —

динозавры

и числа

Чтобы обратиться к элементам массива, вложенного в другой мас-

сив, нужно использовать вторую пару квадратных скобок. Например,

если команда dinosaursAndNumbers[2]; вернет весь вложенный мас-

сив, то dinosaursAndNumbers[2][0]; — лишь первый элемент этого

вложенного массива ("трицератопс").

dinosaursAndNumbers[2];

["трицератопс", "стегозавр", 3627.5]

dinosaursAndNumbers[2][0];

"трицератопс"

индекс

индекс

индекс

индекс

[0]

[1]

[2]

[3]

[3, "динозавры", ["трицератопс", "стегозавр", 3627.5], 10];

индекс

индекс

индекс

[2][0]

[2][1]

[2][2]

Рис. 3.1. Индексы основного массива показаны красным цветом, а индексы вложенного

массива — синим

54 Часть I. Основы

Вводя dinosaursAndNumbers[2][0];, мы просим JavaScript обра-

титься к индексу 2 массива dinosaursAndNumbers, где находится

массив ["трицератопс", "стегозавр", 3627.5], и вернуть значе-

ние с индексом 0 из этого вложенного массива — это первый элемент,

"трицератопс". На рис. 3.1 показаны индексы для этих массивов.

Работаем с массивами

Работать с массивами вам помогут свойства и методы. Свойства хранят

различные сведения о массиве, а методы обычно либо изменяют его,

либо возвращают новый массив. Давайте разберемся.

Длина массива

Порой нужно знать, сколько в массиве элементов. Например, если снова

и снова добавлять динозавров в массив dinosaurs, вы можете забыть,

сколько их теперь всего.

Для этого есть свойство length (длина), хранящее количество эле-

ментов в массиве. Чтобы узнать длину массива, просто добавьте .length

после его имени. Давайте посмотрим, как это работает. Но сначала соз-

дадим новый массив с тремя элементами:

var maniacs = ["Якко", "Вакко", "Дот"];

Якко, Вакко

maniacs[0];

и Дот — герои

"Якко"

мультсериала

maniacs[1];

«Озорные ани-

"Вакко"

машки» (англ.

maniacs[2];

Animaniacs)

"Дот"

о семейке

Уорнер, соз-

данного ком-

Чтобы узнать длину этого массива, добавим .length к maniacs:

панией Warner

Bros.

maniacs.length;

3

JavaScript сообщает, что в массиве 3 элемента, и мы знаем, что их

индексы — 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];

"Кот"

Мы начали с массива, созданного раньше, —

["Кот", "Пес", "Лама"]. Затем добавили в его

начало элементы "Мартышка" и "Белый медведь",