DevGang
Авторизоваться

Введение в методы массива 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 arr

2. Методы итерационных массивов

Итеративные методы массива включают в себя передачу функции обратного вызова и ее последовательное выполнение для каждого элемента массива. Они позволяют более лаконично и выразительно обрабатывать массивы.

Список итерационных методов массива:

  • 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 — это кладезь полезных инструментов для работы с массивами. Они предлагают различные способы обработки массивов, упрощая выполнение различных задач. Узнав о различных категориях методов массива и о том, как они работают, вы сможете писать более качественный и эффективный код.

В нашем блоге можно узнать многое о массивах. Например, предоставляем вашему вниманию Функцию массива случайных чисел, возможности переворота массива и небольшие рекомендации по написанию чистого кода с использование метода массива.

Источник:

#JavaScript
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться