Вопрос проверяет понимание методов every и some для проверки условий на элементах массива.
Методы every и some — это встроенные методы массивов в JavaScript, которые позволяют проверить, соответствуют ли элементы массива определённому условию. Они возвращают булево значение (true или false) и часто используются для валидации данных или проверки наличия определённых значений.
Оба метода принимают функцию обратного вызова (callback), которая выполняется для каждого элемента массива. Callback принимает три аргумента: текущий элемент, его индекс и сам массив. Метод every возвращает true, если callback возвращает true для всех элементов. Если хотя бы один элемент не проходит проверку, every немедленно возвращает false и прекращает обход. Метод some возвращает true, если callback возвращает true хотя бы для одного элемента. Если ни один элемент не проходит проверку, возвращается false.
const numbers = [2, 4, 6, 8, 10];
// every: все ли числа четные?
const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // true
// some: есть ли хотя бы одно число больше 8?
const hasLarge = numbers.some(num => num > 8);
console.log(hasLarge); // true (число 10)
// Пример с объектами
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 17 },
{ name: 'Charlie', age: 30 }
];
// every: все ли пользователи совершеннолетние?
const allAdults = users.every(user => user.age >= 18);
console.log(allAdults); // false (Bob 17 лет)
// some: есть ли хотя бы один несовершеннолетний?
const hasMinor = users.some(user => user.age < 18);
console.log(hasMinor); // trueЭти методы широко используются при валидации форм, проверке прав доступа, фильтрации данных и в любых сценариях, где нужно быстро проверить массив на соответствие условиям. Они делают код более читаемым и лаконичным по сравнению с циклами for.
Вывод: Используйте every, когда нужно убедиться, что все элементы удовлетворяют условию, и some, когда достаточно хотя бы одного совпадения. Это упрощает логику проверок и повышает производительность за счёт раннего выхода из цикла.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию