配列からすべての偽値を削除しようとしています。配列からNaNをフィルタリングする
これはこの問題の最適な解決策ではないかもしれませんが、スイッチを使用したいと考えて、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' [Num.isNaN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN)を使用してください。 – vlaz
とにかく、 NaN'は偽の値ですが、あなたは偽の値をすべて除外することができます – vlaz