![](/img/trans.png)
[英]Array.prototype.filter automatically filtering out falsey value
[英]javascript filtering falsey values; Array.prototype.filter problems
//removes falsey values from the array function bouncer(arr) { return arr.filter(ele => ele); } console.log(bouncer([0, "ate", "", false, 9]));
我不明白為什么只有“ele”的條件在這里起作用。 我只是返回參數,但它不會通過 function 返回任何虛假的 arguments,所以它有效......? 為什么? 同樣,我不明白為什么我不能將該行寫為:
返回 arr.filter(ele => ele===true)
我的條件是:如果數組的一個元素為真...返回它,但這不起作用,我不明白為什么會這樣。 如果我試圖做一個像 (ele => ele>5) 這樣的過濾器,我理解代碼
只返回 "ele" 會將所有不為假的東西都評估為真,即不是0
或""
或false
。 如果您執行ele=>ele!=false
,您將得到與ele=>ele
相同的結果
如果您使用===true
那么它們都不等於 true (類型和值必須匹配true
)
如果你使用==true
那么你仍然沒有得到任何東西,因為它們都沒有評估為真(這里的值1
將通過測試)
你需要在 false 上指定條件
function bouncer(arr) {
return arr.filter(ele => ele?true:false);
}
console.log(bouncer([0, "ate", "", false, 9]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.