Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/every
Методevery()
проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.
arr.every(callback[, thisArg])
callback Функция проверки каждого элемента, принимает три аргумента:
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