我正在经历FreeCodeCamp“Falsy Bouncer”的挑战 . 我必须从数组中删除所有的虚假值 . 我已经知道最简单的解决方案是过滤布尔值,但我想知道是否有可能以这种方式解决问题 .
我在不同的网站上查找了arr.filter()方法,但在这些例子中,带有数组的变量出现在函数之前 . 在我的例子中,我必须操作的数组作为函数的参数 . 所以我真的不明白我在哪里放这一行: var result = arr.filter(bouncer)
. 如果它超出了函数 - 那么它返回 arr is not defined
. 如果它进入函数它返回 - arr.filter is not a function
.
这是我的代码:
function bouncer(arr) {
// Where do I put this line?
var result = arr.filter(bouncer);
return arr !== false, null, 0, NaN, undefined,"";
}
bouncer([7, "ate", "", false, 9]);
那么如果数组是作为函数的参数给出的,那么如何使用array.filter()方法?
2 回答
如果您希望
bouncer
成为用于返回已过滤数组的函数,请使用以下函数:如果你想
bouncer
成为你要传递给filter
的回调,那么使用这个:Note:
!!someVariable
将隐式地将someVariable
转换为其等效的布尔值 .您使用的方法错误,并且您无法检查由逗号分隔的多个内容 . 做你想做的正确方法