javascript过滤虚假值; Array.prototype.filter问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript过滤虚假值; Array.prototype.filter问题相关的知识,希望对你有一定的参考价值。
//removes falsey values from the array
function bouncer(arr) {
return arr.filter(ele => ele);
}
console.log(bouncer([0, "ate", "", false, 9]));
我不明白为什么“ ele”的条件在这里起作用。我只是返回参数,但不会通过该函数返回任何虚假参数,所以它可以工作...?为什么?同样,我不明白为什么我不能这样写:返回arr.filter(ele => ele === true)我的条件是:如果数组的元素为true,则将其返回,但这不起作用,我也不知道为什么。如果我尝试做类似(ele => ele> 5)
的过滤器,我会理解代码答案
仅返回“ ele”将所有非假的值,即不是0
或""
或false
都视为真。如果执行ele=>ele
],则与ele=>ele!=false
相同
如果使用===true
,则它们都不等于真(类型和值必须匹配true
)
如果您使用==true
,那么您仍然不会得到任何东西,因为它们中的任何一个都不为true(这里的值1
将通过测试)
另一答案
之所以有效,是因为您正在使用箭头功能。因此,在您的情况下,filter(ele => ele)
表示您仅返回真实值。
另一答案
您需要指定条件为false
以上是关于javascript过滤虚假值; Array.prototype.filter问题的主要内容,如果未能解决你的问题,请参考以下文章