我正在通过FreeCodeCamp“Falsy Bouncer”挑战。我必须从数组中删除所有的falsy值。我已经知道最简单的解决方案是过滤布尔值,但我想知道是否有可能通过这种方式解决问题。在作为函数参数传递的数组上使用array.filter()方法
我在不同的网站上查找了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()如果阵列被给定为一个函数的自变量使用的方法?
参数*只是变量。 'var result = arr.filter(bouncer);'是接近的,但你不应该通过'bouncer'函数来过滤,你正在创建一个永远不会完成的递归循环。 – Brennan
你想保持''吃了吗? '在结果数组中,还是只想保留数字? –
是的,我想保持“吃”。我只需要过滤掉falsy元素:false,null,0,“”,undefined和NaN。 –