function bouncer(arr){
return arr.filter(function(value){
return value;
});
该函数删除数组中的所有伪数值。我不明白它是如何工作的。是否自动过滤仅返回非伪造值?这个函数如何从数组中删除所有的falsy值?
function bouncer(arr){
return arr.filter(function(value){
return value;
});
该函数删除数组中的所有伪数值。我不明白它是如何工作的。是否自动过滤仅返回非伪造值?这个函数如何从数组中删除所有的falsy值?
由于filter
调用与来自阵列中的每个值的回调,并建立一个新的数组,其包括仅为其中filter
返回truthy值的值。因此,从回调中返回值只保留真值(非伪造值),因为当回调返回虚假值时,filter
会将该条目从其构建的数组中移出。
有关filter
如何工作的详细信息,请参阅MDN(可读)或the specification(明显不如此,但明确)。
您也可以使用Boolean
来过滤真值。
它为每个值返回一个布尔值。
如果需要,作为第一个参数传递的值将转换为布尔值。如果省略值或者是
0
,-0
,null
,false
,NaN
,undefined
或空字符串(""
),则该对象的初始值为false
。如果将DOM对象document.all
作为参数传递,则新的布尔对象的初始值也为false
。所有其他值(包括任何对象或字符串"false"
)都会创建一个初始值为true
的对象。
function bouncer(arr) {
return arr.filter(Boolean);
}
您需要阅读'.filter()'的文档。 – Tomalak
[Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) –