如何在javascripts筛选函数中筛选出NaN

如何在javascripts筛选函数中筛选出NaN,javascript,function,filter,Javascript,Function,Filter,我需要帮助过滤出NaN var trimmer =[7, "ate", "", false, 9]; var filt = value=> value !==false && value!==''&& value!==undefined&& value!==null&& value!==NaN; trimmer.filter(filt); //works for this->[7, "ate", "", f

我需要帮助过滤出
NaN

var trimmer =[7, "ate", "", false, 9];

var filt = value=> value !==false && value!==''&& value!==undefined&&  
value!==null&&  value!==NaN;


trimmer.filter(filt);

//works for this->[7, "ate", "", false, 9];
//but not for [false, null, 0, NaN, undefined, ""];
//need help filtering out NaN

您可以改用
isNan()
函数。下面查看更多示例。

您可以改用
isNan()
函数。请按照下面的说明查看更多示例。

NaN==NaN将始终为您提供false

var trimmer=[false,null,0,NaN,未定义,”;
var trimmer1=[7,“ate”,false,9];
var filt=value=>value==false&&value!==''&&价值==未定义&&
价值==null&&value.toString()!==“NaN”&&value!==0;
console.log(trimmer.filter(filt));
console.log(trimmer1.filter(filt));
//适用于此->[7,“ate”,“false,9];
//但不适用于[false,null,0,NaN,undefined,”;

//需要帮助筛选出NaN
NaN==NaN将始终为您提供false

var trimmer=[false,null,0,NaN,未定义,”;
var trimmer1=[7,“ate”,false,9];
var filt=value=>value==false&&value!==''&&价值==未定义&&
价值==null&&value.toString()!==“NaN”&&value!==0;
console.log(trimmer.filter(filt));
console.log(trimmer1.filter(filt));
//适用于此->[7,“ate”,“false,9];
//但不适用于[false,null,0,NaN,undefined,”;

//需要帮助过滤NaN
Rohodos简单更改值
!=NaN
!isNAN(值)

所以你的代码现在看起来像


var trimmer=[false,null,0,NaN,未定义,”

var filt=value=>value==false&&value!==''&&价值==未定义&值==空&!伊斯南(价值)


trimmer.filter(过滤器)

Rohodos简单更改值
!=NaN
!isNAN(值)

所以你的代码现在看起来像


var trimmer=[false,null,0,NaN,未定义,”

var filt=value=>value==false&&value!==''&&价值==未定义&值==空&!伊斯南(价值)

trimmer.filter(过滤器)

NaN是falsy(false,未定义,null,“,0也是):

NaN是falsy(false,未定义,null,“,0也是):


Javascript将0视为false,因此会对其进行筛选。需要检查变量的类型,如果它是number return true


var trimmer=[false,null,0,NaN,未定义,”;

log(trimmer.filter(e=>e))Javascript将0视为false,因此将对其进行筛选。需要检查变量的类型,如果它是number return true


var trimmer=[false,null,0,NaN,未定义,”;

log(trimmer.filter(e=>e))如果您想过滤掉NaN,但留下其他错误值,那么这将起作用:

const trimmerWithoutNaN = trimmer.filter(val => !isNaN(val))

如果您想过滤掉NaN,但留下其他错误值,那么这将起作用:

const trimmerWithoutNaN = trimmer.filter(val => !isNaN(val))


我试图返回,for=>
[7,“ate”,“false,9]返回
[7,“ate”,9]
删除false和空字符串,for=>
[false,null,0,NaN,undefined,“]
返回
[]
我正试图返回,for=>
[7,“ate”,“false,9]返回
[7,“ate”,9]
删除false和空字符串,for=>
[false,null,0,NaN,undefined,“]
返回
[]
我正试图返回,for=>
[7,“ate”,“false,9]返回
[7,“ate”,9]
删除false和空字符串,for=>
[false,null,0,NaN,undefined,“]
返回
[]
我更新了我的答案,请立即检查。这是你想要的吗?我正试图返回,for=>
[7,“ate”,“false,9]返回
[7,“ate”,9]
删除false和空字符串,for=>
[false,null,0,NaN,undefined,“]
返回
[]
我更新了我的答案,请立即检查。是您想要的吗?
var trimmer=[false,null,0,NaN,undefined,”;var filt=value=>value==false&&value!==''&&价值==未定义&值==null&&isNaN(值)=true;微调器。过滤器(filt)。在这个rohodos
isNaN(值)=true之后,NaN如何仍然不过滤掉
应该是
isNaN(值)==false因为我们正在过滤NaN值,不包括它
var trimmer=[false,null,0,NaN,undefined,”;var filt=value=>value==false&&value!==''&&价值==未定义&值==null&&isNaN(值)=true;微调器。过滤器(filt)。在这个rohodos
isNaN(值)=true之后,NaN如何仍然不过滤掉
应该是
isNaN(值)==false因为我们正在过滤NaN值,而不包括itI,所以删除empy字符串不会有问题,它在这里工作得很好=>
&&value!=''
@rhodoscoder那么上面的一个将是最好的解决方案尝试了它,奇怪的是它工作得完美无缺(几乎),但它没有删除空字符串。如果它真的是空的。“”@rhodos code不客气;)然后点击绿色复选标记;)我在删除empy字符串时没有遇到问题,它在这里工作得很好=>
&&value!=''
@rhodoscoder那么上面的一个将是最好的解决方案尝试了它,奇怪的是它工作得完美无缺(几乎),但它没有删除空字符串。如果它真的是空的。“”@rhodos code不客气;)然后点击绿色复选标记;)我不想要返回零,我想要这个=>
[]
相反,我得到这个=>
[NaN]
然后@Jonas的解决方案非常适合你,所以我做了这个
var filt=value=>value==false&&value!==''&&价值==未定义&值==null&&isNaN(值)=真实&价值=0;
[7,“ate”,“”,false,9]
:)中它吃掉了我的字符串。我尝试了@jonas解决方案,奇怪的是它工作得非常完美(几乎),但它没有删除空字符串
'
我不想返回零,我想要这个=>
[]
相反,我得到了这个=>
[NaN]
Then@Jonas的解决方案非常适合您,所以我做了这个
var filt=va