Массивы в Javascript

Цикл статей «Учебник Javascript».

Следующая статья — «Объекты в Javascript можно использовать в качестве ассоциативных массивов».
Предыдущая статья — «Подмена контекста – call, apply в Javascript».

В Javascript есть три способа объявления массивов.

Первый способ наиболее часто используется. Второй способ делает то же самое, что и первый, но длиннее. Третий способ похож на второй, но инициализирует массив с длиной arrayLength. Второй и третий способы довольно похожи. Тут нужно запомнить, что если у конструктора Array один аргумент, то инициализируется массив с длиной, а не с этим одним элементом.

Размер массива можно менять после инициализации. Также массивы в Javascript не являются плотными, то есть в нём могут быть дыры (вместо некоторых элементов будет возвращаться undefined).

Массивы в Javascript индексируются с нуля. Первый элемент массива имеет индекс 0.

Элементы массива являются свойствами. Но к ним нельзя обратиться с помощью точки, так как с помощью точки нельзя обратиться к свойствам, имя которых начинается с цифры. Но к ним можно обратиться через квадратные скобки.

Длину  массива можно узнать с помощью свойства length. Это свойство можно как считывать, так и присваивать. Если свойству length присвоить большее значение, то новые элементы добавятся в конец, если меньшее, то лишние элементы удалятся с конца.

 

Наиболее часто используемые методы массивов:
Array.isArray(obj)
Возвращает true, если объект obj является массивом, false — в противном случае.

<массив>.pop()
Удаляет последний элемент из массива и возвращает его значение. Совместно с push используется для организации стека на базе массива.

<массив>.push(el1, el2, …, elN)
Добавляет один или несколько элементов в конец массива. Возвращает новую длину массива. Совместно с pop используется для организации стека на базе массива.

<массив>.reverse()
Переворачивает порядок элементов в массиве. Последний элемент становится первым, а первый — последним.

<массив>.shift()
Удаляет первый элемент из массива и возвращает его.

<массив>.unshift(el1, el2, …, elN)
Добавляет один или несколько элементов в начало массива и возвращает новое значение длины массива.

<массив>.sort([compareFunction])
Сортирует массив. Если compareFunction не указан, то массив сортируется в соответствии с сортировкой строк, полученных на основе его элементов, либо. Если compareFunction указан, то порядок сортировки определяется этой функцией. Функция сравнения принимает два аргумента и должна возвращать -1, если первый аргумент меньше второго, 0 — они равны, 1 —  первый аргумент больше второго. Возвращает отсортированный массив (который является исходным массивом, так как сортировка происходит в нём).

 

<массив>.concat(val1, val2, …, valN);
Возвращает новый массив, в котором содержатся элементы исходного массива и элементы/массивы, переданные в качестве аргументов. Не изменяет исходный массив и массивы, переданные в качестве аргументов.

<массив>.join([separator])
Возвращает строку, содержащую элементы массива, разделённые separator. Если аргумент separator не передан, то он считается равным запятой.
<массив>.slice(begin[, end])

Возвращает массив, содержащий элементы исходного массива от begin (включая) до end (исключая). Если end не указывать, то возвращает от begin до конца массива. Индексы begin и end могут быть отрицательными. Тогда они отсчитываются от конца массива.

<массив>.splice(startIndex, deleteCount, el1, el2, … elN)
Изменяет массив. Удаляет deleteCount элементов, начиная с индекса startIndex и вставляет el1, el2… elN элементы в индекс startIndex. Если deleteCount равен нулю, то элементы удаляться не будут. В этом случае нужно указать хотя бы один элемент для добавления.

<массив>.indexOf(searchEl[, startIndex])
Возвращает наименьший индекс элемента, равного searchEl. Параметр startIndex можно опустить. Тогда поиск будет с первого элемента. Возвращает -1, если элемент не удалось найти.

<массив>.lastIndexOf(searchElement[, fromIndex])
Возвращает наибольший индекс элемента, равного searchEl. Если fromIndex не указывать, то поиск идёт с самого конца массива до начала. Если указывать, то начиная с fromIndex до начала массива. Возвращает -1, если элемент не удалось найти.

<массив>.forEach(callback[, thisArg])
Обход массива. Для каждого элемента массива вызывается функция callback, имеющая три параметра: элемент, индекс элемента, массив, по которому идёт обход. При передаче необязательного параметра thisArg он используется в качестве this для функции callback.

<массив>.filter(callback[, thisArg])
Возвращает массив, состоящий только из тех элементов, для которых функция callback вернула true. Функция callback имеет три параметра: элемент, индекс элемента, массив. Параметр thisArg используется в качестве this функции callback.

<массив>.map(callback[, thisArg])
Возвращает массив, элементы которого являются результатом применения callback к исходному элементу. Функция callback имеет три параметра: элемент, индекс элемента, массив. Параметр thisArg используется в качестве this функции callback.

<массив>.reduce(callback[, initialValue])
Возвращает одно значение, которое является результатом последовательного применения функции callback над каждым элементом массива. Функция callback имеет четыре параметра: предыдущее значение (или initialValue, если первый элемент), элемент, индекс, массив. Если initialValue не передавать, то при первом вызове первый параметр примет значение первого элемента массива, а второй параметр — второго элемента.
Ссылки:

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array — Более подробное описание на сайте Mozilla.

Цикл статей «Учебник Javascript».

Следующая статья — «Объекты в Javascript можно использовать в качестве ассоциативных массивов».
Предыдущая статья — «Подмена контекста – call, apply в Javascript».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *