Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, что все элементы массива подходят под условие

Короткий ответ

every() возвращает true, если функция вернула true для каждого элемента:

const ages = [21, 34, 19, 45];
 
console.log(ages.every((age) => age >= 18));

Результат:

true

Хотя бы один

some() подходит, если достаточно одного подходящего элемента:

const ages = [21, 34, 15, 45];
 
console.log(ages.some((age) => age < 18));

Результат:

true

Ни одного

Отдельного метода для ни одного нет. Используйте отрицание some():

const files = ['a.txt', 'b.txt'];
 
console.log(!files.some((name) => name.endsWith('.exe')));

Результат:

true

Частая ошибка

Для пустого массива every() всегда возвращает true. Если для задачи это неверно, проверяйте и длину:

const tasks = [];
 
console.log(tasks.every((task) => task.done));
console.log(tasks.length > 0 && tasks.every((task) => task.done));

Результат:

true
false

Функции из этого ответа

  • Array.prototype.every — Проверяет, что все элементы массива подходят под условие.
  • Array.prototype.some — Проверяет, проходит ли проверку хотя бы один элемент.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.