Подсчёт
Второй приём — подсчёт: сколько элементов массива удовлетворяют условию? Он похож на суммирование, но вместо значения вы прибавляете 1, и только тогда, когда так решает if:
const temperatures = [18, 24, 27, 15, 31, 22, 29];
let hotDays = 0;
for (const temperature of temperatures) {
if (temperature >= 25) {
hotDays++;
}
}
console.log("Жарких дней:", hotDays);Жарких дней: 3Счётчик hotDays начинается с 0 перед циклом. Цикл смотрит на каждую температуру, а if решает, считать ли её. hotDays++ выполняется только для 27, 31 и 29, поэтому в конце счётчик равен 3. И снова результат выводится после цикла.
Иногда нужно знать не только сколько, но и какие именно. Тогда начните с пустого массива и добавляйте в него каждый подходящий элемент через .push():
const temperatures = [18, 24, 27, 15, 31, 22, 29];
const hot = [];
for (const temperature of temperatures) {
if (temperature >= 25) {
hot.push(temperature);
}
}
console.log("Температуры жарких дней:", hot);
console.log("Жарких дней:", hot.length);Температуры жарких дней: [27, 31, 29]
Жарких дней: 3Массив hot может быть const: вы добавляете в него элементы, но никогда не записываете в переменную другой массив.
Задание
- 1
В массиве
scoresхранятся баллы за тест. Чтобы сдать тест, нужно набрать 50 баллов или больше. Посчитайте учеников, которые сдали: создайте переменнуюpassedсо значением0, пройдите поscoresциклом и для каждого результата не меньше 50 увеличивайтеpassedна единицу с помощью++. После цикла выведитеconsole.log("Сдали:", passed);. Вывод:Сдали: 5. - 2
Теперь соберите ещё и результаты ниже 50: перед циклом создайте пустой массив
failed, а внутри цикла добавляйте в него через.push()каждый результат ниже 50 (подойдётelse). После цикла выведите его:console.log("Не сдали:", failed);. Вывод:Не сдали: [45, 38, 29].