从数组中过滤NaN

JDe*_*Dev 1 javascript function nan filter undefined

我正在尝试从数组中删除所有虚假值.

我知道这可能不是这个问题的最佳解决方案,但考虑到我想使用开关,有没有办法去除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 ]
Run Code Online (Sandbox Code Playgroud)

Ami*_*mit 6

有时您只需要保持简单:

function bouncer(arr) {
  return arr.filter(Boolean);
}

console.log(bouncer([false, null, 0, NaN, undefined, ""]));
console.log(bouncer([1, null, NaN, 2, undefined]));
Run Code Online (Sandbox Code Playgroud)