Как проверить, что все элементы массива подходят под условие
Короткий ответ
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 — Проверяет, проходит ли проверку хотя бы один элемент.