Еще одна проблема. Еще один способ освоить. В этом случае мы собираемся использовать метод filter() для «отбрасывания» значений, которые являются логическими значениями, из массива.
Мы можем вызвать метод filter() непосредственно для массива, который хотим фильтровать, однако мы должны указать направление filter в терминах функции, чтобы определить, какие элементы фильтруются. Фильтр работает, перебирая массив и передавая элементы в массиве один за другим через функцию. Затем возвращаются элементы, которые «прошли» тест. Поскольку мы хотим отфильтровать логические значения, мы хотим сравнить каждый элемент, чтобы увидеть, является ли он логическим и удалить ли он. Мы можем легко сделать это с помощью оператора if:
function bouncer(arr) {
return arr.filter(function (value){
if (value !== Boolean){
return value;
}
});
}
bouncer([7, “ate”, “”, false, 9]);
Как видите, логика обратная, но имеет смысл алгоритмически. Мы проверяем, является ли значение логическим и не возвращает ли оно его.