--description--
Remove all falsy values from an array. Return a new array; do not mutate the original array.
Falsy values in JavaScript are false
, null
, 0
, ""
, undefined
, and NaN
.
Hint: Try converting each value to a Boolean.
--hints--
bouncer([7, "ate", "", false, 9])
should return [7, "ate", 9]
.
assert.deepEqual(bouncer([7, 'ate', '', false, 9]), [7, 'ate', 9]);
bouncer(["a", "b", "c"])
should return ["a", "b", "c"]
.
assert.deepEqual(bouncer(['a', 'b', 'c']), ['a', 'b', 'c']);
bouncer([false, null, 0, NaN, undefined, ""])
should return []
.
assert.deepEqual(bouncer([false, null, 0, NaN, undefined, '']), []);
bouncer([null, NaN, 1, 2, undefined])
should return [1, 2]
.
assert.deepEqual(bouncer([null, NaN, 1, 2, undefined]), [1, 2]);
You should not mutate arr
.
const arr = ['a', false, 0, 'Naomi'];
bouncer(arr);
assert.deepEqual(arr, ['a', false, 0, 'Naomi'])
--seed--
--seed-contents--
function bouncer(arr) {
return arr;
}
bouncer([7, "ate", "", false, 9]);
--solutions--
function bouncer(arr) {
return arr.filter(e => e);
}
bouncer([7, "ate", "", false, 9]);