Array.prototype.every()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод every() экземпляров Array возвращает false, если находит в массиве элемент, который не удовлетворяет предоставленной тестирующей функции. В противном случае он возвращает true.
Попробовать
const isBelowThreshold = (currentValue) => currentValue < 40; const array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold)); // Expected output: true
Синтаксис
every(callbackFn) every(callbackFn, thisArg)
Параметры
-
callbackFn - Функция, которая будет выполняться для каждого элемента в массиве. Она должна возвращать truthy значение, чтобы указать, что элемент проходит тест, и falsy значение в противном случае. Функция вызывается со следующими аргументами:
-
element - Текущий обрабатываемый элемент в массиве.
-
index - Индекс текущего обрабатываемого элемента в массиве.
-
array - Массив, на котором был вызван
every().
-
-
thisArgНеобязательно - Значение, используемое как
thisпри выполненииcallbackFn. См. итеративные методы.
Возвращаемое значение
true, если только callbackFn не возвращает falsy значение для элемента массива, и в этом случае немедленно возвращается false.
Описание
Метод every() является итеративным методом. Он вызывает предоставленную функцию callbackFn один раз для каждого элемента в массиве, пока callbackFn не вернет falsy значение. Если такой элемент найден, every() немедленно возвращает false и прекращает итерацию по массиву. В противном случае, если callbackFn возвращает truthy значение для всех элементов, every() возвращает true. Прочтите раздел итеративные методы для получения дополнительной информации о том, как эти методы работают в целом.
every действует как квантор "для всех" в математике. В частности, для пустого массива он возвращает true. (Это вакуумно истинно, что все элементы пустого множества удовлетворяют любому заданному условию.)
callbackFn вызывается только для тех индексов массива, которым присвоены значения. Он не вызывается для пустых слотов в разреженных массивах.
Метод every() является обобщенным (generic). Он ожидает, что значение this будет иметь свойство length и свойства с целочисленными ключами.
Примеры
Тестирование размера всех элементов массива
Следующий пример проверяет, являются ли все элементы в массиве 10 или больше.
function isBigEnough(element, index, array) {
return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true
Проверка, является ли один массив подмножеством другого массива
Следующий пример проверяет, присутствуют ли все элементы одного массива в другом массиве.
const isSubset = (array1, array2) => array2.every((element) => array1.includes(element)); console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 7, 6])); // true console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false
Использование третьего аргумента callbackFn
Аргумент array полезен, если вы хотите получить доступ к другому элементу в массиве. Следующий пример сначала использует filter() для извлечения положительных значений, а затем использует every() для проверки того, является ли массив строго возрастающим.
const numbers = [-2, 4, -8, 16, -32];
const isIncreasing = numbers
.filter((num) => num > 0)
.every((num, idx, arr) => {
// Without the arr argument, there's no way to easily access the
// intermediate array without saving it to a variable.
if (idx === 0) return true;
return num > arr[idx - 1];
});
console.log(isIncreasing); // true
Использование every() на разреженных массивах
every() не будет выполнять свой предикат на пустых слотах.
console.log([1, , 3].every((x) => x !== undefined)); // true console.log([2, , 2].every((x) => x === 2)); // true
Вызов every() для объектов, не являющихся массивами
Метод every() считывает свойство length объекта this, а затем обращается к каждому свойству с неотрицательным целочисленным ключом, меньшим, чем length, пока все они не будут обработаны или callbackFn не вернет false.
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: 345, // ignored by every() since length is 3
};
console.log(
Array.prototype.every.call(arrayLike, (x) => typeof x === "string"),
); // true
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
every |
1 |
12 |
1.5 |
9.5 |
3 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
Смотрите также
- Полифил
Array.prototype.everyвcore-js - Полифил es-shims для
Array.prototype.every - Руководство по индексированным коллекциям
ArrayArray.prototype.forEach()Array.prototype.some()Array.prototype.find()TypedArray.prototype.every()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every