← Назад к вопросам

Что такое метод массива every?

1.0 Junior🔥 232 комментариев
#JavaScript Core

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Метод Array.prototype.every()

every() — это встроенный метод массива, который проверяет, удовлетворяют ли все элементы массива условию, заданному в функции-предикате. Возвращает true, если все элементы прошли проверку, и false, если хотя бы один не прошел.

Синтаксис

array.every((element, index, array) => {
  // условие проверки
  return true; // или false
});

Параметры callback функции:

  • element — текущий элемент
  • index — индекс элемента (опционально)
  • array — сам массив (опционально)

Простые примеры

Пример 1: Проверка всех чисел на четность

const numbers = [2, 4, 6, 8];
const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // true

const mixed = [2, 4, 5, 8];
const allEven2 = mixed.every(num => num % 2 === 0);
console.log(allEven2); // false (5 не четное)

Пример 2: Проверка возраста

const users = [
  { name: "Алиса", age: 25 },
  { name: "Боб", age: 30 },
  { name: "Виктор", age: 28 }
];

const allAdult = users.every(user => user.age >= 18);
console.log(allAdult); // true

Пример 3: Проверка наличия обязательных полей

const products = [
  { id: 1, name: "Ноутбук", price: 50000 },
  { id: 2, name: "Мышка", price: 1500 },
  { id: 3, name: "Клавиатура", price: 3000 }
];

const allValid = products.every(product => 
  product.id && product.name && product.price
);
console.log(allValid); // true

Важные особенности

1. Ранняя остановка (Short-circuit evaluation)

const numbers = [1, 2, 3, 4, 5];

const result = numbers.every((num, index) => {
  console.log("Проверка", num);
  return num < 4;
});

// Вывод:
// Проверка 1
// Проверка 2
// Проверка 3
// Проверка 4 (тут же false, дальше не продолжаем)

Метод остановится на первом элементе, который вернул false. Это эффективно для больших массивов.

2. Пустой массив ВСЕГДА true

const empty = [];
const result = empty.every(num => num > 0);
console.log(result); // true (вакуумная истина)

3. Контекст this (второй аргумент)

const validator = {
  minValue: 10,
  check: function(numbers) {
    return numbers.every(num => num >= this.minValue);
  }
};

console.log(validator.check([15, 20, 25])); // true
console.log(validator.check([5, 20, 25])); // false

Примеры из реальной жизни

Валидация формы

const validateForm = (fields) => {
  return fields.every(field => {
    return field.value.trim() !== "" && field.valid === true;
  });
};

const fields = [
  { value: "Иван", valid: true },
  { value: "ivan@mail.com", valid: true },
  { value: "", valid: false }
];

console.log(validateForm(fields)); // false

Проверка доступа пользователя

const hasAccess = (user) => {
  const requiredPermissions = ["read", "write", "delete"];
  return requiredPermissions.every(perm => 
    user.permissions.includes(perm)
  );
};

const admin = { permissions: ["read", "write", "delete", "admin"] };
const user = { permissions: ["read", "write"] };

console.log(hasAccess(admin)); // true
console.log(hasAccess(user)); // false

Отличие от похожих методов

МетодВозвращаетКогда остановиться
every()true если все прошлиНа первом false
some()true если хоть один прошелНа первом true
filter()Новый массив с подходящимиПроверяет все
find()Первый подходящий элементНа первом true

Практическое применение

  • Валидация данных перед отправкой
  • Проверка прав доступа пользователя
  • Проверка состояния (все ли задачи завершены)
  • Контроль качества (все ли параметры в норме)

Метод every() — это мощный инструмент для логических проверок, которые требуют, чтобы условие выполнялось для всех элементов массива.