PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

В чем разница между some и every?

Массивы и структуры данных

`some` и `every` — методы массива, возвращающие boolean: `some` проверяет, удовлетворяет ли условию хотя бы один элемент, `every` — все ли элементы.

some — хотя бы один

Возвращает true, если хотя бы один элемент удовлетворяет условию:

[1, 2, 3, 4].some((n) => n > 3); // true — есть 4
[1, 2, 3].some((n) => n > 5);    // false — ни одного

every — все

Возвращает true, если все элементы удовлетворяют условию:

[2, 4, 6].every((n) => n % 2 === 0); // true — все чётные
[2, 4, 5].every((n) => n % 2 === 0); // false — 5 нечётное

Короткое замыкание

Оба останавливаются досрочно:

  • some — как только нашёл подходящий (true).
  • every — как только нашёл неподходящий (false).

Это эффективнее, чем filter для проверки наличия.

На пустом массиве

[].some(fn);  // false — ни одного
[].every(fn); // true — «все» (вакуумная истина)

Применение

const hasError = fields.some((f) => f.error);      // есть ли ошибка
const allValid = fields.every((f) => f.isValid);   // всё ли валидно

Коротко для собеседования

some — true, если хотя бы один элемент удовлетворяет условию; every — если все. Оба возвращают boolean и делают короткое замыкание (some останавливается на первом true, every — на первом false). На пустом массиве some → false, every → true.

Другие вопросы раздела