Подсчет количества овец, присутствующих в массиве

Мы собираемся написать функцию с именем 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