JavaScript метод every()
JavaScript ArrayОпределение и применение
JavaScript метод every() позволяет проверить (в порядке возрастания индекса), все ли элементы в массиве соответствуют условию заданному в передаваемой функции.
Возвращаемое значение метода будет логическое значение true, если функция обратного вызова возвращает значение true для всех элементов массива, в противном случае вернет логическое значение false, при том значение false возвращается сразу при нахождении хотя бы одного элемента не соответствующему заданному условию. Метод every() всегда возвращает true, когда вызывается на пустом массиве.
Обращаю Ваше внимание, что функция обратного вызова, переданная в качестве параметра метода every() не будет вызвана для удалённых, или пропущенных элементов массива. Метод every() не изменяет массив для которого он был вызван.
Диапазон элементов, обрабатываемых с помощью метода every() устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.
Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод every() посещает их. Если элементы удаляются до их посещения, то такие элементы посещены не будут.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
every() | Да | Да | Да | Да | 9.0 | Да |
JavaScript синтаксис:
// только с callback функцией array.every( function( currentValue, index, arr ) ); // с использованием объекта, на который может ссылаться ключевое слово this array.every( function( currentValue, index, arr ), thisValue );
Версия JavaScript
ECMAScript 5.1 (Реализовано в JavaScript 1.6)Значения параметров
Параметр | Описание |
---|---|
function | Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве. Функция принимает следующие параметры:
Если в качестве параметра метода передается что-то, что не является объектом функции, то будет вызвано исключение TypeError. Обязательный параметр. |
thisValue | Объект, на который может ссылаться ключевое слово this внутри функции обратного вызова. Если параметр thisValue не используется, то в качестве значения this будет использоваться undefined (в конечном счете this будет зависеть от обычных правил контекста выполнения функции). Необязательный параметр. |
Пример использования
В следующем примере с использованием JavaScript метода every() мы рассмотрим как получить новый массив, который содержит элементы другого массива увеличенные в два раза:
var array = [1, 2, 3]; // инициализируем переменную, содержащую массив числовых значений array.every( // проверяем все ли элементы в массиве соответствуют условию заданному в передаваемой функции function checkNumber( currentValue ) { return currentValue > 0; // проверяем является ли текущее значение больше нуля } // возвращаемое значение будет true (все элементы массива больше нуля) ); // аналогично с использованием стрелочной функции array.every( currentValue => currentValue > 0 ); // возвращаемое значение true array.every( currentValue => currentValue < 0 ); // возвращаемое значение false
В следующем примере мы рассмотрим использование второго аргумента метода every(), который указывает на объект, на который мы можем ссылаться с использованием ключевого слова this внутри функции обратного вызова:
var numbers = [1, 2, 3]; // инициализируем переменную, содержащую массив числовых значений var myObject = { // инициализируем переменную, содержащую объект checkNumber: function( currentValue ) { // метод объекта, который принимает значение return currentValue > 0; // проверяем является ли текущее значение больше нуля } }; numbers.every( // проверяем все ли элементы в массиве соответствуют условию заданному в передаваемой функции function( currentValue ) { return this.checkNumber( currentValue ); // возвращаемое значение метода checkNumber объекта myObject }, myObject // объект, на который мы ссылаемся с использованием ключевого слова this ); // возвращаемое значение будет true (все элементы массива больше нуля)JavaScript Array