Все мы любим кого-то: методы every и some в массивах JavaScript

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

От автора: зачастую в JavaScript требуется просеять массив и определить, есть ли в нем элементы, удовлетворяющие определенным условиям, значения в заданном промежутке или же узнать, совпадают ли все ячейки массива с чем-либо. С одной стороны, можно пойти обычным путем и прогнать массив в цикле, проверяя каждое значение (цикл for), ну или использовать более современный метод forEach. Однако есть способ намного лучше: методы every и some, с помощью которых можно получать мгновенный ответ на поставленные условия.

Метод every

К примеру, у нас есть массив возраста:

Нужно проверить все ли ячейки достигли «совершеннолетия» (18 лет или старше), тогда в консоли можно написать следующий код с помощью стрелок:

Результат будет или true или false, т.е. строку выше можно было бы записать через условие if:

В методе every есть колбэк, а значит, сравнения можно проводить и во внешних функциях. К примеру, у нас есть JSON массив насекомых:

Необходимо убедиться, что все насекомые в структуре относятся к группе чешуекрылых (Lepidoptera, семейство мотыльков и бабочек). Можно написать функцию:

Прикрепляем функцию к массиву и показываем результат через консоль:

В нашем случае вернется true.

Метод some

Точно так же можно проверить, что хотя бы часть элементов (some) массива удовлетворяет заданному условию. Скажем, нам нужно определить, что хотя бы одно значение меньше 30. Массив остался тот же:

Стоит отметить, что ни метод all ни метод some не изменяют массив; они только проверяют его на совпадение условию. Нам нужно узнать, если ли хотя бы одно значение, меньшее 30:

Метод some прекращает работу при нахождении первого совпадения в массиве. Точно так же его можно использовать для поиска в массиве заданного значения. В заданном массиве содержатся греческие музы:

Проверить массив на заданное значение можно с помощью функции:

Мы можем проверять массив на заданное значение при помощи функции isPresent, передавая в качестве аргументов ей массив и значение для поиска:

Поддержка

Оба метода превосходно поддерживаются браузерами: все современные браузеры, включая IE9+. (Для IE8 есть полифил).

Источник: //thenewcode.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: