60
Часть I. Основы
Хоть команда
fi rstArray.concat(otherArray) и возвращает мас-
сив, содержащий все элементы из
fi rstArray и otherArray, сами эти
массивы остаются прежними. Запросив содержимое
furryAnimals
и
scalyAnimals, мы видим, что массивы не изменились.
Объединение нескольких массивов
С помощью
concat можно объединить больше чем два массива. Для этого
укажите дополнительные массивы в скобках, разделив их запятыми:
var furryAnimals = ["Альпака", "Кольцехвостый лемур", "Йети"];
var scalyAnimals = ["Удав", "Годзилла"];
var featheredAnimals = ["Ара", "Додо"];
var allAnimals = furryAnimals.concat(scalyAnimals,
featheredAnimals);
allAnimals;
["
Альпака
", "
Кольцехвостый лемур
", "
Йети
", "
Удав
", "
Годзилла
",
"
Ара
", "
Додо
"]
Мы видим, что пернатые животные из массива
featheredAnimals
оказались в
самом конце нового массива, поскольку
featheredAnimals
был указан последним в скобках метода
concat.
Метод
concat удобен, когда нужно объединить несколько массивов
в один. Скажем, пусть у
вас есть список любимых книг и у вашего друга
тоже есть свой список, и вы решили выяснить, можно ли купить все эти
книги в магазине по соседству. Тогда будет проще, если у
вас будет не два
списка, а один. Просто объедините ваш список со списком вашего друга
методом
concat, и пожалуйста — у вас один список на двоих!
Поиск индекса элемента в массиве
Чтобы выяснить, какой у
определенного элемента индекс в мас-
сиве, используйте
.indexOf("элемент"). Создадим массив colors
с названиями цветов, а затем получим индексы элементов «синий»
и «зеленый» с
помощью команд
colors.indexOf("синий") и colors.
indexOf("зеленый"). Поскольку "синий" располагается по индексу 2,
colors.indexOf("синий") вернет 2. А "зеленый" находится по ин-
дексу 1, так что
colors.indexOf("зеленый") вернет 1.
var colors = ["красный", "зеленый", "синий"];
colors.indexOf("синий");
2
colors.indexOf("зеленый");
1
Feathered
Animals
—
животные
с перьями
All animals
—
все животные
Color
— цвет
3. Массивы
61
Метод
indexOf похож на квадратные скобки, только здесь все наобо-
рот: команда
colors[2] вернет "синий", а colors.indexOf("синий")
вернет 2.
colors[2];
"
синий
"
colors.indexOf("синий");
2
Хотя элемент
"синий" стоит третьим по порядку, его индекс равен 2,
ведь мы всегда считаем с 0. Разумеется, то же относится к
"зеленый"
с индексом 1.
Если элемента, индекс которого вы запрашиваете, в
массиве нет,
JavaScript вернет значение −1.
colors.indexOf("фиолетовый");
-1
Таким образом JavaScript сообщает: «элемент не найден», так или
иначе возвращая из метода число.
Если элемент встречается в массиве больше чем один раз,
indexOf
вернет индекс того элемента, который находится ближе к началу массива.
var insects = ["Пчела", "Муравей", "Пчела", "Пчела", "Муравей"];
insects.indexOf("Пчела");
0
Превращаем массив в строку
Воспользовавшись методом
.join(), можно соединить все элементы
массива в
одну большую строку.
var boringAnimals = ["Мартышка", "Кот", "Рыба", "Ящерица"];
boringAnimals.join();
"
Мартышка,Кот,Рыба,Ящерица
"
Метод
join возвращает строку, в которой через запятую перечис-
лены все элементы массива
boringAnimals. Но что если мы не хотим
использовать в
качестве разделителя запятую?
Нам поможет метод
.join ("разделитель"), который делает все
то же самое, но вместо запятых ставит между элементами выбранный
Join
—
соединить
Insects
—
насекомые
Boring
animals
—
скучные
животные