【发布时间】:2016-12-24 16:25:06
【问题描述】:
我正在尝试从数组中删除所有虚假值。
我知道这可能不是这个问题的最佳解决方案,但考虑到我想使用开关,有没有办法去除 NaN?
function bouncer(arr) {
arr=arr.filter(removeFalsy);
return arr;
}
function removeFalsy(val){
switch(val){
case false: return false;
case null: return false;
case 0: return false;
case "" :return false;
case undefined: return false;
case NaN: return false; // <=== NaN
default: return true;
}
}
bouncer([false, null, 0, NaN, undefined, ""]);
//result is: [ NaN ]
bouncer([1, null, NaN, 2, undefined]);
//result is: [ 1, NaN, 2 ]
【问题讨论】:
-
NaN == NaN //false使用Number.isNaN -
无论如何,因为
NaN是一个假值,你可以过滤掉所有假值
标签: javascript function filter undefined nan