# Every

Метод every в JavaScript проверяет, удовлетворяют ли все элементы массива условию, задаваемому в передаваемой функции. Если хотя бы один элемент не удовлетворяет условию, every возвращает false. Если массив пустой, метод всегда возвращает true, так как для пустого набора элементов условие выполняется автоматически.

Синтаксис: array.every(callback(element[, index[, array]])[, thisArg])

  • callback: Функция, которая будет выполнена для каждого элемента массива.
    • element: Текущий элемент массива, для которого вызывается функция.
    • index (необязательно): Индекс текущего элемента.
    • array (необязательно): Сам массив, для которого вызван метод every.
  • thisArg (необязательно): Значение, которое будет использовано в качестве this для функции callback.

# Возвращаемое значение:

  • Возвращает true, если для всех элементов массива функция callback вернула истинное значение.
  • Возвращает false, если хотя бы для одного элемента функция callback вернула ложное значение.

# Особенности метода every:

  1. Ранний выход из цикла: Если метод every() находит хотя бы один элемент, который не соответствует условию, он немедленно прекращает выполнение и возвращает false. Это оптимизирует работу с большими массивами.
  2. Не изменяет исходный массив: Как и большинство методов массива в JavaScript, every() не изменяет исходный массив, а только проверяет его элементы.
  3. Работа с пустым массивом: Если массив пуст, то метод всегда возвращает true, так как для пустого множества элементов любое условие считается выполненным.

# Примеры использования every:

Все числа больше нуля:

const numbers = [1, 2, 3, 4, 5];
const allPositive = numbers.every((num) => num > 0);

console.log(allPositive); // true, так как все числа больше 0

Не все элементы соответствуют условию:

const numbers = [1, -2, 3, 4, 5];
const allPositive = numbers.every((num) => num > 0);

console.log(allPositive); // false, так как -2 не больше 0

Проверка поля объекта:

const users = [
  { name: "Alice", age: 25 },
  { name: "Bob", age: 30 },
  { name: "Charlie", age: 17 },
];
const allAdults = users.every((user) => user.age > 18);

console.log(allAdults); // false, так как Charlie младше 18 лет