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问题的主要内容,如果未能解决你的问题,请参考以下文章

提高代码效率的 20 个JavaScript 技巧和窍门

提高代码效率的 20 个JavaScript 技巧和窍门

为啥当值为假时我不能传递过滤数据(它是布尔值)

javascript 删除虚假变量

NaN 在 Javascript 中总是一个虚假的值吗?

去除图像中虚假的小噪声岛 - Python OpenCV