Подсчет количества овец, присутствующих в массиве
Мы собираемся написать функцию с именем countSheeps
, которая принимает массив arrayOfSheep
в качестве аргумента.
Вам дан массив, содержащий логические значения. Цель функции — вернуть количество присутствующих овец. Если значение равно true
, это означает, что овца присутствует.
Пример:
let array = [true, true, true, false, true, true, true, true , true, false, true, false, true, false, false, true , true, true, true, true , false, false, true, true ]; countSheeps(array1); // output: 17
В приведенном выше примере в массиве 17 значений true
, поэтому функция выведет 17
.
Несмотря на то, что значения массива являются логическими значениями, также важно проверять наличие других ложных значений, таких как null
и undefined
.
Для этой функции мы будем использовать метод filter
. Начнем с создания постоянной переменной с именем present
. Эта переменная будет содержать массив, содержащий все значения true
из arrayOfSheep
.
const present = arrayOfSheep.filter(sheep => sheep);
Метод filter
поможет нам отфильтровать все значения falsey
во входном массиве.
Возвращая только sheep
, JavaScript использует преобразование типов для оценки каждого значения как логического. Все, что считается ложным значением, не будет включено в массив present
.
Теперь, когда у нас есть массив значений true
, все, что нам нужно сделать, это вернуть длину массива. Это число представляет количество присутствующих овец.
return present.length;
Вот полная функция:
Если вы нашли этот алгоритм полезным, ознакомьтесь с другими моими статьями об алгоритмах JavaScript:
Дополнительные материалы на plainenglish.io