使用|比较多个值

时间:2016-01-08 00:55:34

标签: javascript

  var newArr = arr.filter(function(val){
    return val != false|null|0|""|undefined|NaN;})

我正在尝试过滤等于false,null,0,“”,undefined,NaN的值。 上面的代码似乎适用于false,0和“”,我不确定我是否正在写null,undefined和NaN不正确或者代码根本不应该工作。 如果这只是一厢情愿的话,请告诉我

1 个答案:

答案 0 :(得分:2)

你应该能够通过返回值本身来实现它(如果你加倍“否定”你得到一个布尔值)

var newArr = arr.filter(function(val){ return !!val })

这是可能的,因为所有这些值都在javascript中被视为“false

如果您想清楚地显示所有选项,那么最简单的方法是使用&&(AND)运算符。

val !== false && val !== null && val !== 0

等等......(或者如Jeremy Banks所提到的,将index与indexOf一起使用)