如何在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)代码>。在这个rohodosisNaN(值)=true之后,NaN如何仍然不过滤掉
应该是isNaN(值)==false代码>因为我们正在过滤NaN值,不包括它var trimmer=[false,null,0,NaN,undefined,”;var filt=value=>value==false&&value!==''&&价值==未定义&值==null&&isNaN(值)=true;微调器。过滤器(filt)代码>。在这个rohodosisNaN(值)=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