# Falsy Bouncer Challenge_Why does this solution not clear all requirements?

Falsy Bouncer Challenge_Why does this solution not clear all requirements?
0

#1

This solution clears only the first two requirements. I wondered why this is. Thanks for the help. (https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer)

``````function bouncer(arr) {
// Don't show a false ID to this bouncer.
let newArr = [];
for (let i = 0; i < arr.length; i++){
if (arr[i] !== false && arr[i] !== null && arr[i] !== 0 && arr[i] !== "" && arr[i] !== undefined && arr[i] !== NaN) {
newArr.push(arr[i]);
}
}
return newArr;
}

bouncer([7, "ate", "", false, 9]);
``````

#2

Thing One:
`NaN === NaN` is false.

Thing Two:
This is a common misunderstanding with the Falsy Bouncer. You can make a solution for this challenge which tests against a hardcoded list of falsy values, but it misses the point of the exercise. The concept of values being “falsy” isn’t something made up by Free Code Camp for the purposes of this challenge, but rather a quality that values have in programming languages. A value is falsy if the language treats the value as `false` when it is evaluated as a boolean. This means that `Boolean(someFalsyValue)` is `false` but also that we can use it in a conditional like `if (someFalsyValue)`. We can also talk about values being “truthy”. As I’m sure you’ve guessed, truthy values evaluate to `true` in a boolean or logical context.

``````if (someFalsyValue) {
// this code block is not entered
}
else if (someTruthyValue) {
// this code block is entered and executed
}
``````