var newArr = arr.filter(function(val){
return val != false|null|0|""|undefined|NaN;})
我正在尝试过滤等于false,null,0,“”,undefined,NaN的值。 上面的代码似乎适用于false,0和“”,我不确定我是否正在写null,undefined和NaN不正确或者代码根本不应该工作。 如果这只是一厢情愿的话,请告诉我
答案 0 :(得分:2)
你应该能够通过返回值本身来实现它(如果你加倍“否定”你得到一个布尔值)
var newArr = arr.filter(function(val){ return !!val })
这是可能的,因为所有这些值都在javascript中被视为“false
”
如果您想清楚地显示所有选项,那么最简单的方法是使用&&
(AND)运算符。
val !== false && val !== null && val !== 0
等等......(或者如Jeremy Banks所提到的,将index与indexOf一起使用)