Найти в Дзене
JS

JS: методы поиска в массиве. Filter, Find, FindIndex, indexOf, includes и some

filter Filter проходится на данному массиву и возвращает новый массив из элементов, прошедших какую-либо проверку. Проверка задаётся в функции колбэке, которая передаётся методу как аргумент. Если проверку не прошёл ни один элемент, вернётся пустой массив. В качестве аргументов filter принимает колбэк, который, в свою очередь, имеет следующие аргументы: Codepen find Find возвращает первый элемент в массиве, который удовлетворяет условию. Если ни один элемент не удовлетворяет, вернётся undefined. Часто используется при поиске в базах данных. Метод find может работать на любой сущности, у которой есть длина и целочисленные ключи. Find проходится и по пустым элементам массива. Find в качестве аргумента принимает колбэк, который, в свою очередь, имеет следующие аргументы: Codepen findIndex FindIndex возвращает позицию элемента в массиве, если он там есть; в противном случае возвращается -1. После того как метод найдёт позицию элемента, он завершится, то есть найдена будет позиция первого э
Оглавление

filter

Filter проходится на данному массиву и возвращает новый массив из элементов, прошедших какую-либо проверку. Проверка задаётся в функции колбэке, которая передаётся методу как аргумент. Если проверку не прошёл ни один элемент, вернётся пустой массив.

В качестве аргументов filter принимает колбэк, который, в свою очередь, имеет следующие аргументы:

  • элемент массива (обязательно)
  • индекс элемента (опционально)
  • массив, на котром отрабатывает метод (опционально)

Codepen

find

Find возвращает первый элемент в массиве, который удовлетворяет условию. Если ни один элемент не удовлетворяет, вернётся undefined. Часто используется при поиске в базах данных.

Метод find может работать на любой сущности, у которой есть длина и целочисленные ключи.

Find проходится и по пустым элементам массива.

Find в качестве аргумента принимает колбэк, который, в свою очередь, имеет следующие аргументы:

  • элемент массива (обязательно)
  • индекс элемента (опционально)
  • массив, на котром отрабатывает метод (опционально)

Codepen

findIndex

FindIndex возвращает позицию элемента в массиве, если он там есть; в противном случае возвращается -1. После того как метод найдёт позицию элемента, он завершится, то есть найдена будет позиция первого элемента, который удовлетворил условию.

Разрабатывался специально для поиску по массивам.

Find в качестве аргумента принимает колбэк, который, в свою очередь, имеет следующие аргументы:

  • элемент массива (обязательно)
  • индекс элемента (опционально)
  • массив, на котром отрабатывает метод (опционально)

Codepen

indexOf

Вернёт первый индекс элемента в массиве, если он там есть; в противном случае возвращается -1.

Работает на массивах и на строках.

Принимает два параметра:

  • искомое значение (что искать) (обязательно)
  • позицию в массиве, откуда начать поиск (опционально)

Codepen

includes

Метод includes возвращает true, если нашёл элемент в массиве, и false, если не нашёл.

Принимает два параметра:

  • искомое значение (что искать) (обязательно)
  • позицию в массиве, откуда начать поиск (опционально)

Codepen

some

Метод includes возвращает true, если хотя бы один элемент в массиве удовлетворяет условию, и false, если ни один не удовлетворяет. Если массив пустой, будет возвращено false.

В качестве аргумента принимает колбэк, который, в свою очередь, имеет следующие аргументы:

  • элемент массива (обязательно)
  • индекс элемента (опционально)
  • массив, на котром отрабатывает метод (опционально)

Codepen

every

Метод every возвращает true, если все элементы в массиве удовлетворяют условию, и false, если хотя бы один не удовлетворяет. Если массив пустой, будет возвращено false.

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

В качестве аргумента принимает колбэк, который, в свою очередь, имеет следующие аргументы:

  • элемент массива (обязательно)
  • индекс элемента (опционально)
  • массив, на котром отрабатывает метод (опционально)

Codepen

Какой метод когда использовать

  • Если нужно достать индекс элемента, удовлетворяющего какому-либо условию -> findIndex
  • Если вы знаете значение и нужно узнать, в каком индексе оно содержится -> indexOf
  • Если нужно достать первый элемент, удовлетворяющий условию (=прошедший проверку) -> find
  • Если нужно достать все элементы, удовлетворяющие условию -> filter
  • Если нужно знать, содержит или нет массив определённое значение -> includes
  • Если нужно узнать, есть ли в массиве элементы, которые удовлетворяют условию -> some
  • Если нужно узнать, удовлетворяют ли все элементы массива заданному условию -> every