Вопрос проверяет понимание различий в поведении и назначении основных методов перебора массивов.
some проверяет, существует ли хотя бы один элемент, удовлетворяющий условию. every проверяет, что условие выполняется для всех элементов. filter возвращает новый массив с элементами, прошедшими проверку. Эти методы решают разные задачи, хотя используют похожий колбэк. Неправильный выбор метода приводит к лишним вычислениям и менее читаемому коду.
Методы some, every и filter выглядят похожими, но предназначены для разных сценариев.
some
Возвращает true, если хотя бы один элемент удовлетворяет условию.
Используется для проверки факта существования подходящего элемента.
every
Возвращает true, только если все элементы массива проходят проверку.
Подходит для валидации данных или проверки инвариантов.
filter
Возвращает новый массив элементов, удовлетворяющих условию.
Используется, когда нужен результат, а не просто булево значение.
Возвращаемое значение
some → boolean
every → boolean
filter → array
Досрочное завершение
some останавливается при первом true
every останавливается при первом false
filter всегда проходит весь массив
Производительность
Для простых проверок some и every предпочтительнее, так как могут завершиться раньше.
const numbers = [1, 2, 3, 4]
numbers.some(n => n > 3) // true
numbers.every(n => n > 0) // true
numbers.filter(n => n > 2) // [3, 4]
some и every используются для логических проверок, а filter — для получения данных. Выбор метода должен соответствовать цели, иначе код становится менее эффективным и читаемым.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию