javascript - 使用 | 比较多个值

标签 javascript

  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/

相关文章:

javascript - ASP.NET MVC Razor <text> 标签不接受小于或等于运算符

javascript - 使用完整路径获取文件对象

javascript - 在 HTML5 离线应用程序中处理图像?

javascript - 将下拉列表中的值添加到 KnockoutJS 中另一个下拉列表中的任意一组值

javascript - 在 NodeJS 中处理多个、顺序、依赖的 mongo 查询结果的最佳方法

javascript - 成功或错误消息输入 javascript bootstrap

javascript - 带有自定义标记和图标调整大小的 vue2-google-maps 出现问题,在缩小时放错了位置

javascript - 在 AngularJS Material 中使用 ng-table

javascript - 淡入/淡出、向上/向下滑动方法重复/完成得太快

javascript - 如何将两个字符串值作为整数进行比较?