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

массива — так же как push и pop добавляют и удаляют элементы с конца.

"Лама"

[ , "Белый медведь", "Мартышка", "Кот"]

shift

unshift

"Лама"

[ , "Белый медведь", "Мартышка", "Кот"]

Объединение массивов

Чтобы «склеить» два массива, создав таким образом

новый массив, используйте команду fi rstArray.

First Array —

concat(otherArray). Метод concat создает мас-

первый массив

сив, в котором элементы из fi rstArray будут распо-

Other Array —

ложены перед элементами из otherArray.

другой массив

Пускай у нас есть два списка — список

пушистых животных и список чешуйчатых

животных — и мы хотим их объединить. Если

поместить наших пушистых животных в мас-

Furry animals —

сив furryAnimals, а чешуйчатых — в мас-

пушистые

сив scalyAnimals, команда furryAnimals.

животные

concat(scalyAnimals) создаст новый массив,

Scaly animals —

в начале которого будут элементы из первого мас-

чешуйчатые

сива, а в конце — из второго.

животные

var furryAnimals = ["Альпака", "Кольцехвостый лемур", "Йети"]; var scalyAnimals = ["Удав", "Годзилла"];

var furryAndScalyAnimals = furryAnimals.concat(scalyAnimals);

Furry and scaly

furryAndScalyAnimals;

animals —

["Альпака", "Кольцехвостый лемур", "Йети", "Удав", "Годзилла"]

пушистые

и чешуйчатые

furryAnimals;

животные

["Альпака", "Кольцехвостый лемур", "Йети"]

scalyAnimals;

["Удав", "Годзилла"]

3. Массивы 59

Хоть команда fi rstArray.concat(otherArray) и возвращает мас-

сив, содержащий все элементы из fi rstArray и otherArray, сами эти

массивы остаются прежними. Запросив содержимое furryAnimals

и scalyAnimals, мы видим, что массивы не изменились.

Объединение нескольких массивов

С помощью concat можно объединить больше чем два массива. Для этого

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

var furryAnimals = ["Альпака", "Кольцехвостый лемур", "Йети"]; Feathered

var scalyAnimals = ["Удав", "Годзилла"];

Animals —

var featheredAnimals = ["Ара", "Додо"];

животные

var allAnimals = furryAnimals.concat(scalyAnimals, 

с перьями

featheredAnimals);

All animals —

allAnimals;

все животные

["Альпака", "Кольцехвостый лемур", "Йети", "Удав", "Годзилла",

"Ара", "Додо"]

Мы видим, что пернатые животные из массива featheredAnimals

оказались в самом конце нового массива, поскольку featheredAnimals

был указан последним в скобках метода concat.

Метод concat удобен, когда нужно объединить несколько массивов

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

тоже есть свой список, и вы решили выяснить, можно ли купить все эти

книги в магазине по соседству. Тогда будет проще, если у вас будет не два

списка, а один. Просто объедините ваш список со списком вашего друга

методом concat, и пожалуйста — у вас один список на двоих!

Поиск индекса элемента в массиве

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

Color — цвет

сиве, используйте .indexOf("элемент"). Создадим массив colors

с названиями цветов, а затем получим индексы элементов «синий»

и «зеленый» с помощью команд colors.indexOf("синий") и colors.

indexOf("зеленый"). Поскольку "синий" располагается по индексу 2,

colors.indexOf("синий") вернет 2. А "зеленый" находится по ин-

дексу 1, так что colors.indexOf("зеленый") вернет 1.

var colors = ["красный", "зеленый", "синий"];

colors.indexOf("синий");

2

colors.indexOf("зеленый");

1

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

Метод indexOf похож на квадратные скобки, только здесь все наобо-

рот: команда colors[2] вернет "синий", а colors.indexOf("синий")

вернет 2.

colors[2];

"синий"

colors.indexOf("синий");

2

Хотя элемент "синий" стоит третьим по порядку, его индекс равен 2,

ведь мы всегда считаем с 0. Разумеется, то же относится к "зеленый"

с индексом 1.

Если элемента, индекс которого вы запрашиваете, в массиве нет,

JavaScript вернет значение −1.

colors.indexOf("фиолетовый");

-1

Таким образом JavaScript сообщает: «элемент не найден», так или

иначе возвращая из метода число.

Если элемент встречается в массиве больше чем один раз, indexOf

вернет индекс того элемента, который находится ближе к началу массива.

var insects = ["Пчела", "Муравей", "Пчела", "Пчела", "Муравей"]; Insects —

insects.indexOf("Пчела");

насекомые

0

Превращаем массив в строку

Воспользовавшись методом .join(), можно соединить все элементы

Join —

массива в одну большую строку.

соединить

Boring

var boringAnimals = ["Мартышка", "Кот", "Рыба", "Ящерица"]; animals —

boringAnimals.join();

скучные

"Мартышка,Кот,Рыба,Ящерица"

животные

Метод join возвращает строку, в которой через запятую перечис-

лены все элементы массива boringAnimals. Но что если мы не хотим

использовать в качестве разделителя запятую?

Нам поможет метод .join ("разделитель"), который делает все

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

3. Массивы 61

разделитель. Давайте попробуем три разных разделителя:

дефис с пробелами по сторонам, звездочку * и союз «и»

с пробелами по сторонам. Обратите внимание: разделитель

нужно записывать в кавычках — ведь это строка.

var boringAnimals = ["Мартышка", "Кот", "Рыба", "Ящерица"]; boringAnimals.join(" - ");

"Мартышка - Кот - Рыба - Ящерица"

boringAnimals.join("*")

"Мартышка*Кот*Рыба*Ящерица"

boringAnimals.join(" и ")

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

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