var newArr = arr.filter(function(val){
return val != false|null|0|""|undefined|NaN;})
我正在尝试过滤等于 false、null、0、“”、未定义、NaN 的值。 上面的代码似乎适用于 false、0 和 "",但我不确定我是否错误地编写了 null、undefined 和 NaN,或者代码是否根本不应该工作。 如果这只是一厢情愿,请告诉我
最佳答案
您应该能够通过返回值本身来实现这一点(如果您双重“否定”,您会得到一个 bool 值)
var newArr = arr.filter(function(val){ return !!val })
这是可能的,因为所有这些值在 JavaScript 中都被“视为 false
”
如果您想清楚地显示所有选项,那么最简单的方法是使用 &&
(AND) 运算符。
val !== false && val !== null && val !== 0
等等...(或者正如 Jeremy Banks 提到的,将数组与 indexOf 一起使用)
关于javascript - 使用 | 比较多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667856/