Введение в методы массива JavaScript
 
        Массивы — это фундаментальная структура данных в JS, позволяющая разработчикам эффективно хранить наборы элементов и управлять ими. Объект Array в JS имеет множество методов, позволяющих программистам с легкостью выполнять стандартные операции с массивами. В этой исчерпывающей статье мы исследуем мир массивов JS, их важные характеристики и различные категории, к которым они принадлежат.
Кроме того, мы углубимся в различие между изменяющими и неизменяющими методами массива, а также итеративными методами и методами создания массива.
Что такое массив в JavaScript?
Массив в JS — это особый тип объекта, в котором хранится список элементов. В отличие от обычных объектов, массивы упорядочены, что означает, что элементы индексируются и доступны по их положению в массиве. Эти индексы начинаются с 0 для первого элемента, 1 для второго и так далее.
Массивы в JS могут содержать элементы любого типа данных, такие как числа, строки, объекты или даже другие массивы. Эта универсальность делает массивы мощным инструментом для хранения данных и управления ими в различных сценариях программирования. Мы подготовили для вас несколько хитростей и советов для ориентирования в мире массивов JS.
Важные моменты, касающиеся массивов в JavaScript:
Индексация с отсчетом от нуля. Как упоминалось ранее, массивы в JS используют индекс от нуля, то есть доступ к первому элементу осуществляется с использованием индекса 0, ко второму — с индексом 1 и так далее.
Динамическая длина: массивы JS являются динамическими, то есть их длина может изменяться во время выполнения программы. Элементы могут быть добавлены или удалены, что приведет к соответствующему увеличению или уменьшению массива.
Разнородные элементы: массивы могут содержать элементы разных типов данных. В отличие от некоторых других языков программирования, массивы JS не ограничиваются хранением элементов одного типа.
Синтаксис литерала массива: Массивы можно создавать, используя литералы массивов, заключенные в квадратные скобки [], где элементы разделяются запятыми.
Методы массивов: JS предоставляет множество встроенных методов, которые позволяют разработчикам выполнять различные операции с массивами. Эти методы включают добавление и удаление элементов, поиск определенных значений, сортировку и многое другое.
Свойство длины массива: Массивы имеют свойство длины, которое указывает количество элементов в массиве. Это свойство можно использовать для эффективного управления массивами.
Разреженные массивы: массивы JS могут быть разреженными, что означает, что они могут иметь «дыры», где элементы не определены или отсутствуют.
Категории массивов JavaScript:
По своему поведению массивы JS можно разделить на следующие группы:
1. Мутирующие и немутирующие методы массива
Мутирующие методы массива напрямую изменяют исходный массив, а немутирующие методы возвращают новый массив, не изменяя исходный.
Мутирующие методы массива:
- fill(): заполняет все элементы массива статическим значением.
- copyWithin(): копирует последовательность элементов массива в указанный целевой индекс.
- pop(): удаляет последний элемент из массива и возвращает его.
- push(): добавляет один или несколько элементов в конец массива и возвращает новую длину.
- reverse(): меняет порядок элементов в массиве на обратный.
- shift(): удаляет первый элемент из массива и возвращает его.
- sort(): сортирует элементы массива на месте на основе заданных критериев сортировки.
- splice(): добавляет или удаляет элементы из массива по определённому индексу.
- unshift(): добавляет один или несколько элементов в начало массива и возвращает новую длину.
Немутирующие методы массива:
- concat(): объединяет два или более массива в новый массив.
- slice(): извлекает часть массива и возвращает новый массив.
- join(): объединяет все элементы массива в строку с указанным разделителем.
- toString(): преобразует массив в строковое представление.
- toSorted(): (не стандартный метод) Объяснение отсутствует.
- toSpliced(): (не стандартный метод) Объяснение отсутствует.
- indexOf(): возвращает индекс первого вхождения данного элемента в массив.
- lastIndexOf(): возвращает индекс последнего вхождения данного элемента в массив.
- include(): проверяет, содержит ли массив определенный элемент, и возвращает true или false.
- Every(): проверяет, удовлетворяют ли все элементы заданному условию, и возвращает true или false.
- some(): проверяет, удовлетворяет ли хотя бы один элемент заданному условию, и возвращает true или false.
- filter(): создает новый массив с элементами, которые соответствуют заданному условию.
- map(): создает новый массив, применяя функцию к каждому элементу исходного массива.
- reduce(): уменьшает массив до одного значения, применяя функцию слева направо.
- reduceRight(): уменьшает массив до одного значения, применяя функцию справа налево.
Простой способ превратить мутирующий метод в немутирующий альтернативный — использовать синтаксис распространения или slice(), чтобы сначала создать копию:
arr.copyWithin(0, 1, 2); // mutates arr
const arr2 = arr.slice().copyWithin(0, 1, 2); // does not mutate arr
const arr3 = [...arr].copyWithin(0, 1, 2); // does not mutate arr2. Методы итерационных массивов
Итеративные методы массива включают в себя передачу функции обратного вызова и ее последовательное выполнение для каждого элемента массива. Они позволяют более лаконично и выразительно обрабатывать массивы.
Список итерационных методов массива:
- Every(): проверяет, проходят ли все элементы массива заданный тест, возвращая логическое значение.
- filter(): создает новый массив со всеми элементами, прошедшими данный тест (функция обратного вызова).
- find(): возвращает значение первого элемента массива, удовлетворяющего заданной тестовой функции.
- findIndex(): возвращает индекс первого элемента массива, удовлетворяющего заданной тестовой функции.
- findLast(): возвращает значение последнего элемента массива, удовлетворяющего заданной тестовой функции.
- findLastIndex(): возвращает индекс последнего элемента массива, удовлетворяющего заданной тестовой функции.
- flatMap(): сопоставляет каждый элемент с помощью функции сопоставления, а затем объединяет результат в новый массив.
- forEach(): выполняет предоставленную функцию один раз для каждого элемента массива.
- group(): группирует элементы массива на основе указанного ключа или условия.
- groupToMap(): группирует элементы массива в карту на основе указанного ключа или условия.
- map(): создаёт новые массивы с результатами вызова предоставленной функции для каждого элемента.
- some(): проверяет прошёл ли хотя бы один элемент в массиве длинный тест, возвращая логическое значение.
- reduce(): применяет функцию к каждому элементу массива, сводя его к одному значению.
- reduceRight(): аналогична- reduce(), но обрабатывает массив справа налево.
3. Создание новых массивов
Создание новых массивов в JS может быть выполнено с помощью специальных методов, которые возвращают новые массивы на основе существующих.
- concat(): объединяет два или более массива и возвращает новый массив.
- filter(): создает новый массив со всеми элементами, прошедшими данный тест (функция обратного вызова).
- flat(): создает новый массив со всеми элементами подмассива, объединенными в него рекурсивно до указанной глубины.
- flatMap(): сопоставляет каждый элемент с помощью функции сопоставления, а затем объединяет результат в новый массив.
- map(): создает новый массив с результатами вызова предоставленной функции для каждого элемента.
- slice(): возвращает неглубокую копию части массива на основе начального и конечного индексов.
- splice(): добавляет или удаляет элементы из массива по определенному индексу.
- toReversed(): возвращает новый массив с элементами в обратном порядке по сравнению с исходным массивом.
- toSorted(): возвращает новый отсортированный массив на основе элементов исходного массива.
- toSpliced(): возвращает новый массив с указанным количеством элементов, удалённых из исходного массива, начиная с указанного индекса.
- with(): это недопустимый метод массива JavaScript; это похоже на заполнитель или опечатку.
- Array.from(): создает новый неглубоко скопированный массив из массивоподобного или итерируемого объекта.
- Array.of(): создает новый массив из переменного количества аргументов, независимо от количества или типа аргументов.
Заключение
В заключение отметим, что методы массивов в JS — это кладезь полезных инструментов для работы с массивами. Они предлагают различные способы обработки массивов, упрощая выполнение различных задач. Узнав о различных категориях методов массива и о том, как они работают, вы сможете писать более качественный и эффективный код.
В нашем блоге можно узнать многое о массивах. Например, предоставляем вашему вниманию Функцию массива случайных чисел, возможности переворота массива и небольшие рекомендации по написанию чистого кода с использование метода массива.