题目描述:
删除数组中的所有假值。
在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。
还是先上代码:
function bouncer(arr) {
return arr.filter(Boolean);
}
bouncer([7, "ate", "", false, 9]);
数组中有个filter()方法,它创建一个新数组, 包含通过所提供函数实现的测试的所有元素。我们只需要实现过滤假值的函数就OK了。
判断数组里的元素是不是假值我们可以用Boolean对象,它是一个布尔值对象的包装器。如果Boolean构造函数的参数不是一个布尔值,则该参数会被转换成一个布尔值.如果参数是 0, -0, null, false, NaN, undefined, 或者空字符串 (“”),生成的Boolean对象的值为false. 其他任何值,包括任何对象或者字符串”false”, 都会创建一个值为true的Boolean对象.
上面的 arr.filter(Boolean) 等同于
arr.filter(function(item,index,array){
return Boolean(item);
})