Spec-Zone.ru › JavaScript

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

Спецификации

Specification
ECMAScript® 2027 Language Specification
# sec-array.prototype.every

Совместимость с браузерами

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
  • Руководство по индексированным коллекциям
  • Array
  • Array.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API