Массивы в JavaScript состоят из списков элементов. JavaScript предоставляет множество полезных встроенных методов для работы с массивами. Методы, которые изменяют исходный массив, называются модификаторами, а методы, которые отображают значения массива, называются методами доступа.
Чтобы лучше понять данное руководство, необходимо иметь базовые навыки работы с массивами: уметь создавать, индексировать, изменять и итерировать массивы.
Читайте также:
В данном мануале описаны методы конкатенации массивов, преобразования массивов в строки, копирования частей массивов в новый массив и методы поиска индексов в массивах.
Примечание: Методы массивов пишутся как Array.prototype.method(), где Array.prototype относится к объекту Array. Но для простоты в руководстве массивы пишутся как method().
Метод concat()
Метод concat() объединяет два и больше массива в новый массив.
В приведенном ниже примере новый массив создан путем конкатенации двух массивов.
// Create arrays of monovalves and bivalves
let monovalves = [ "abalone", "conch" ];
let bivalves = [ "oyster", "mussel", "clam" ];
// Concatenate them together into shellfish variable
let shellfish = monovalves.concat(bivalves);
Вызвав новый массив, вы увидите, что он состоит из двух исходных массивов.
shellfish;
[ 'abalone', 'conch', 'oyster', 'mussel', 'clam' ]
Метод concat() может принимать несколько аргументов, благодаря чему он позволяет объединять множество массивов одновременно.
Метод join()
Метод join() преобразовывает все элементы массива в новую строку.
let fish = [ "piranha", "barracuda", "koi", "eel" ];
Без аргументов метод join() вернет строку разделенных запятыми значений массива (без пробелов).
// Join the elements of an array into a string
let fishString = fish.join();
fishString;
'piranha,barracuda,koi,eel'
Чтобы добавить пробел или другой разделитель, вы можете указать строку с ним в качестве параметра метода join(). Этот параметр будет содержать разделитель, который вы хотите использовать между каждым элементом массива.
// Join the elements of an array into a string
let fishString = fish.join(', ');
fishString;
'piranha, barracuda, koi, eel'
Последовательность символов ‘, ‘ разделит значения с помощью пробелов. Пустая строка, добавленная в качестве аргумента, полностью удалит запятые по умолчанию.
Метод slice()
Метод slice() копирует фрагмент массива в новый массив.
let fish = [ "piranha", "barracuda", "koi", "eel" ];
Предположим, нам нужно скопировать два последних элемента в новый массив. Сначала укажите индекс первого элемента (в данном случае – 2). Индекс последнего элемента указывается исключительно (то есть последний заданный элемент не учитывается при копировании). Поскольку индекс последнего элемента в массиве 3, нужно указать 4.
// Slice a new array from 2 to 5
let fishWithShortNames = fish.slice(2, 4);
fishWithShortNames;
[ 'koi', 'eel' ]
В этом конкретном случае второй аргумент на самом деле не нужен, поскольку eel – последний элемент в массиве. Метод slice() будет копировать элементы, начиная с первого указанного индекса и до конца, если второй аргумент не указан.
// Slice a new array from 2 to the end of the array
let fishWithShortNames = fish.slice(2);
fishWithShortNames;
[ 'koi', 'eel' ]
Не путайте slice() с модификатором splice(), который добавляет и удаляет элементы из массива.
Читайте также: Методы массивов в JavaScript: модификаторы
Метод indexOf()
Метод indexOf() возвращает индекс первого экземпляра запрашиваемого элемента в массиве.
В этом примере элемент barracuda встречается дважды.
let fish = [ "piranha", "barracuda", "koi", "barracuda" ];
Метод indexOf() вернет индекс первого экземпляра этого элемента.
// Find the first instance of an element
fish.indexOf("barracuda");
1
Если запрашиваемого значения не существует, консоль вернет -1.
fish.indexOf("shark");
-1
Метод indexOf() очень полезен при работе с массивами, в которых много элементов.
Метод lastIndexOf()
Метод lastIndexOf() возвращает индекс последнего экземпляра элемента в массиве.
Вернемся к предыдущему примеру.
let fish = [ "piranha", "barracuda", "koi", "barracuda" ];
// Find the last instance of an element
fish.lastIndexOf("barracuda");
3
Метод lastIndexOf() просматривает массив с конца и выводит индекс первого найденного экземпляра элемента.
Заключение
В этом мануале вы ознакомились с основными встроенными методами доступа в JavaScript. Методы доступа создают новую копию или представление массива, но никак не влияют на исходный массив.
Теперь вы умеете объединять массивы, преобразовывать их в строки, копировать фрагменты массивов и определять индекс первого и последнего экземпляра искомого элемента.
Читайте также: