Это третья публикация в моей серии о удобных встроенных методах JavaScript для различных типов данных (ссылки на остальные статьи находятся внизу этой статьи). Существует множество удобных готовых методов, которые можно использовать для манипулирования данными, и я объясню некоторые из наиболее полезных.

В этом посте будут обсуждаться методы массива. Массивы - это тип объекта JavaScript, который представляет собой набор элементов, обозначенных квадратными скобками, например arr = [1,2,3,4]. Каждый элемент в массиве имеет номер индекса, который указывает на его позицию в массиве (начиная с 0) и позволяет нам получить доступ к определенному элементу, используя его индекс - продолжая наш предыдущий пример, arr [0] вернет 1. Элементы в массиве могут относиться к любому типу данных, включая массивы (это будет вложенный массив), функции и null.

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

Обр.длина

Возвращает количество элементов в массиве. Пустые и нулевые элементы по-прежнему учитываются.

Добавление, удаление и изменение элементов в массивах:

Arr.push (данные)

Добавляет предоставленные данные в конец массива. Может принимать несколько значений, разделенных запятыми, которые будут добавляться в том же порядке. Изменяет исходный массив (деструктивно). Возвращаемое значение - это новая длина массива, а не сам измененный массив.

Arr.unshift (данные)

Добавляет предоставленные данные в начало массива - может принимать несколько значений. Разрушительный. Возвращаемое значение - это новая длина массива, а не массив.

Arr.pop ()

Удаляет последний элемент из массива. Разрушительный. Возвращаемое значение - это элемент, который был удален из массива, а не массив.

arr.shift ()

Удаляет первый элемент из массива. Разрушительный. Возвращаемое значение - это элемент, который был удален, а не массив.

Arr.slice (startIndex, endIndex)

Возвращает фрагмент массива, начиная с элемента в начальном индексе, до элемента перед конечным индексом, т. Е. Элемент в конечном индексе не входит в выбор. Может предоставить отрицательный начальный индекс, и в этом случае он отсчитывается в обратном порядке от последнего элемента (например, arr.slice (-2) вернет последние 2 элемента массива). Конечный индекс не является обязательным - если он не указан, вернет все элементы от начального индекса до конца массива. Неразрушающий, возвращает копию выбранных элементов без изменения исходного массива.

Arr.splice (startIndex, numDelete, dataAdd…)

Не путать со срезом, сращивание является деструктивным и изменяет исходный массив. Его можно использовать для удаления, добавления или замены элементов по определенному индексу в массиве:

  • Первый аргумент - это индекс, с которого вы хотите начать.
  • Второй аргумент - это количество элементов, которые вы хотите удалить - может быть установлено на 0, если вы не хотите удалять какие-либо элементы, может быть опущено, чтобы удалить все элементы после начального индекса.
  • Последний аргумент - это данные, которые вы добавляете в массив - несколько элементов могут быть вставлены в массив, начиная с начального индекса, или могут быть опущены, если вы не хотите ничего добавлять / заменять в массиве.

возвращаемое значение e - это массив удаленных элементов, а не измененный массив (если ни один из них не удален, возвращается пустой массив).

Arr.fill (значение, startIndex, endIndex)

Заменяет элементы в массиве указанным значением. Необязательные параметры начального и конечного индекса, если они предоставлены, заменяют от начального индекса до элемента до (не включая) конечного индекса. Если конечный параметр не указан, заменит все элементы из начального индекса, если ни один из них не предоставлен, заменит все элементы в массиве параметром значения. Разрушительный. Возвращаемое значение - измененный массив.

Управление массивами:

Arr.toString ()

Возвращает массив, преобразованный в строку, с элементами, разделенными запятыми, без добавления пробелов, например, [«the», «red», «dog»]. ToString () возвращает «the» , рыжий, собака ». Не так полезен, как arr.join (), который позволяет указать разделитель.

Arr.join (разделитель)

Как упоминалось выше, возвращает массив, преобразованный в строку, но с элементами, разделенными предоставленным разделителем. Например, [«the», «red», «dog»]. Join (««) возвращает «красная собака». Если разделитель не указан, ведет себя так же, как toString ().

Arr1.concat (arr2)

Объединяет два или более массива в новый массив без изменения исходных массивов. Предоставляемые аргументы не обязательно должны быть массивами, могут иметь любой тип данных, элементы будут добавлены в новый массив в указанном порядке. Возвращает новый объединенный массив.

Обр.плоск. (Глубина)

Сглаживает вложенные массивы по количеству предоставленных слоев и удаляет все пробелы / пустые элементы в массиве - например, [1,, [3, [4]]]. Flat (1) возвращает [1, 3, [4]]. Неразрушающий, возвращает сплющенную копию исходного массива.

Поиск и тестирование данных в массивах:

Arr.find (testFunction)

Возвращает первый элемент, удовлетворяющий предоставленной тестовой функции.

Arr.filter (testFunction)

Возвращает новый массив всех элементов, удовлетворяющих предоставленной тестовой функции. Неразрушающий.

Arr.indexOf (значение, startIndex)

Возвращает индекс первого экземпляра предоставленного значения в массиве. Необязательный второй параметр устанавливает начальный индекс для поиска (начиная с этого индекса, поиск до последнего элемента в массиве), если начальный индекс не предоставлен, поиск выполняется с первого элемента. Если значение не найдено в массиве, возвращается -1. Также arr.lastIndexOf (value, startIndex) » работает таким же образом, возвращая индекс последнего экземпляра значения.

Arr.includes (значение, startIndex)

Проверяет, включает ли массив указанное значение. Возвращает логическое значение. Необязательный второй параметр указывает позицию индекса, с которого следует начать поиск, так же, как indexOf ().

Arr.some (testFunction)

Проверяет, возвращает ли какой-либо элемент в массиве истинное значение на основе предоставленного теста. Возвращает логическое значение.

Arr.every (testFunction)

Проверяет, возвращает ли каждый элемент в массиве истинное значение на основе предоставленного теста. Возвращает логическое значение.

Сортировка и перебор массивов:

Arr.reverse ()

Меняет порядок элементов в массиве на обратный. Изменяет исходный массив, возвращаемое значение - обратный массив.

Arr.sort (compareFunction)

Сортирует элементы в массиве на основе предоставленной функции. Если функция сравнения не предоставлена, элементы преобразуются в строки и сортируются на основе значений кода UTF-16, что может привести к некоторому неожиданному поведению с элементами, не являющимися строками, поэтому, если не выполняется сортировка массива строк, вы должны предоставить функцию сортировки:

  • Для сортировки чисел по возрастанию используйте: arr.sort ((a, b) = ›a - b)
  • Для сортировки чисел по убыванию используйте: arr.sort ((a, b) = ›b - a)

Изменяет исходный массив, возвращаемое значение - отсортированный массив.

Arr.Map (функция)

Применяет предоставленную функцию к каждому из элементов в массиве и помещает их в значения в новый массив. например, [1,2,3] .map (x = ›x * 2) возвращает [2,4,6]. Неразрушающим образом возвращаемое значение - это измененная копия исходного массива.

Arr.reduce (функция (общее, текущее значение), начальное значение)

Уменьшает массив до одного значения, перебирая элементы и применяя предоставленную функцию к каждому элементу, накапливая изменения в каждой итерации. Параметр функции должен иметь как минимум два аргумента - общее, которое является начальным значением на первой итерации, и текущее значение, которое является значением текущего элемента в массиве. На каждой итерации общее значение изменяется за счет применения функции к текущему значению. В дополнение к функции, reduce принимает необязательный второй аргумент начального значения, которое будет предоставлено функции как значение total на первой итерации. Если не задано значение initialValue, по умолчанию будет установлено значение 0, но это может привести к непреднамеренному поведению, поэтому безопаснее всегда указывать начальное значение. Возвращаемое значение - это значение total после того, как функция была вызвана для последнего элемента в массиве. См. Документацию для более подробного объяснения и подробностей о дополнительных возможных аргументах для параметра функции.

Arr.reduceRight (функция (всего, текущее значение), начальное значение)

Работает точно так же, как reduce (), но применяет его к элементам в массиве справа налево (т. Е. Начинается с последнего элемента, выполняя итерацию в обратном направлении по массиву к первому элементу).

Ссылки на остальные статьи из серии Знакомство со встроенными методами JavaScript: