Методы массивов в JavaScript: методы доступа

Массивы в 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. Методы доступа создают новую копию или представление массива, но никак не влияют на исходный массив.

Теперь вы умеете объединять массивы, преобразовывать их в строки, копировать фрагменты массивов и определять индекс первого и последнего экземпляра искомого элемента.

Читайте также:

Tags: