这道题虽然提示使用Array.filter()方法,但还考察了对数据类型的掌握;先用列举的方法,将不符合的情况列举出来,代码如下:
function bouncer(arr) {
function fun(element){
if(element !== undefined && element !== false && element !== null && element !== 0 && element !== '' && element !== isNaN){
return element;
}
}
return arr.filter(fun);
}
bouncer([false, null, 0, NaN, undefined, ""]);
这样看上去是不是感觉很臃肿,那有没有其他方法呢?有的,可以对这些判断条件进行归纳,那就是为”假”的情况下删除该值,这里可以考虑使用Boolean()方法,代码如下:
function bouncer(arr) {
function fun(element){
return Boolean(element);
}
return arr.filter(fun);
}
bouncer([7, "ate", "", false, 9]);
还能继续简写:
function bouncer(arr) {
return arr.filter(function fun(element){
return !!(element);
});
}
bouncer([7, "ate", "", false, 9]);
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。