Выбор ответа Middle Объекты и массивы обновлено

every и some на пустом массиве

Вопрос

Что выведет код?

const empty = [];
console.log(empty.every((x) => x > 0), empty.some((x) => x > 0));

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: true false. every ищет элемент, нарушающий условие; в пустом массиве его нет, поэтому true (в логике это «пустая истина»). some ищет хотя бы один подходящий элемент; его тоже нет, поэтому false.

Варианты ответа

  1. true falseправильный ответ
  2. false false
  3. true true
  4. false true

Разбор

every ищет элемент, нарушающий условие; в пустом массиве его нет, поэтому true (в логике это «пустая истина»). some ищет хотя бы один подходящий элемент; его тоже нет, поэтому false. Это ловушка в валидации: «все поля заполнены» через every пройдёт для пустой формы, если не проверить длину отдельно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.