我正在通過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。 –