Одно маленькое аналитическое расследование


#1

Добрый день. Прошу обьяснить мне и всем тем кто возможно не понял принципа:
когда в условии цикла мы проверяем число: "меньше ли оно чем порог минимального количества юзеров за день if(usersByDay[i]<minUsers), то после, мы выводим в консоль usersByDay[i] и получаем Дни, посещаемость в которых была ниже чем порог minUsers. Почему в консоль выводятся именно Дни, посещаемость в которых была НИЖЕ чем порог minUsers а не просто все Дни. В условиях вывода в консоль же указано просто usersByDay[i]. А не usersByDay[i] которые меньше minUsers. Нужно знать как программа поняла что мне нужно вывести именно Дни которые меньше что бы разложилось все в голове. В теории я представлял себе вывод что то типо console.log(usersByDay[i<minUsers]) или что то типо того. Но мы просто прописываем: если индекс меньше порога то выводим список индексов Всех чисел. Как программа поняла что нужно вывести список индексов который меньше порога?
Вот вырезка из задания:

// Суммируем посещаемость
var totalUsers = 0;
var minUsers = expectedUsers - 100;
for (var i = 0; i <= usersByDay.length - 1; i++) {
if(usersByDay[i]<minUsers){
console.log(usersByDay[i]);
}
totalUsers += usersByDay[i];

Заранее спасибо за развернутое объяснение.


#2

если бы строка console.log(usersByDay[i]); просто находилась бы в цикле, то так бы и выводило все дни.
но она находится внутри условия, которое внутри цикла.
на каждой итерации цикла проверяется условие, и если предикат отдает true (а предикат тут это результат логического выражения usersByDay[i]<minUsers), то в консоль попадает текущее для итерации значение
usersByDay[i], это не все члены массива, а конкретный, индекс которого зависит от текущей итерации, т.е. от значения i


#3

Спасибо! Приму за правило.