Конспект JS-course

Метод every( )

Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/every

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

Синтаксис

arr.every(callback[, thisArg])

Параметры

callback Функция проверки каждого элемента, принимает три аргумента:

  • currentValue Текущий обрабатываемый элемент в массиве.
  • index Индекс текущего обрабатываемого элемента в массиве.
  • array Массив, по которому осуществляется проход.

thisArg Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод every вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве до тех пор, пока не найдет такой, для которого callback вернет ложное значение (значение, становящееся равным false при приведении его к типу Boolean). Если такой элемент найден, метод every немедленно вернёт false. В противном случае, если callback вернёт true для всех элементов массива, метод every вернёт true.

Функция callback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались.

Метод every не изменяет массив, для которого он был вызван.

Примеры

Пример: проверка размера всех элементов массива

Следующий пример проверяет, являются ли все элементы массива числами, большими 10.

function isBigEnough(element, index, array) {
  return element >= 10;
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed равен false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed равен true

Пример: Прерывание цикла

Следующий код использует Array.prototype.every для логирования содержимого массива и останавливается при превышении значением заданного порогового значения THRESHOLD.

var THRESHOLD = 12;
var v = [5, 2, 16, 4, 3, 18, 20];
var res;

res = v.every(function(element, index, array) {
  console.log('element:', element);
  if (element >= THRESHOLD) {
    return false;
  }

  return true;
});
console.log('res:', res);
// логи:
// element: 5
// element: 2
// element: 16
// res: false

res = v.some(function(element, index, array) {
  console.log('element:', element);
  if (element >= THRESHOLD) {
    return true;
  }

  return false;
});
console.log('res:', res);
// логи:
// element: 5
// element: 2
// element: 16
// res: true