Javascript 如何在.filter()中保留空值和假值元素?
我试图从Javascript数组中解析所有不是数字的元素,但看看当数组包含除零以外的其他falsy元素时它会做什么:Javascript 如何在.filter()中保留空值和假值元素?,javascript,functional-programming,Javascript,Functional Programming,我试图从Javascript数组中解析所有不是数字的元素,但看看当数组包含除零以外的其他falsy元素时它会做什么: [false,null, false, true].filter((x)=>x) 返回 [true] 但我想保留那些虚假的元素。我如何做到这一点呢?那么,不要依赖错误检查,明确地测试数字 [false, null, false, true].filter(x => typeof x !== 'number') 如果要排除所有数字(不确定我是否理解正确),则可以执
[false,null, false, true].filter((x)=>x)
返回
[true]
但我想保留那些虚假的元素。我如何做到这一点呢?那么,不要依赖错误检查,明确地测试数字
[false, null, false, true].filter(x => typeof x !== 'number')
如果要排除所有数字(不确定我是否理解正确),则可以执行以下操作:
[false,null,false,true]。过滤器((x)=>!Number.isInteger(x))代码>问题在于JavaScript有几个值被认为是假值。通过发送identityx=>x
所有被认为是错误的值都将被过滤掉
您需要提供一个函数/lambda,当它是一个数字时返回false,对于其他所有内容返回true。例如
[false,null,false,5,5.3,true]。过滤器(x=>typeof(x)!='number')
; ==> [假,空,假,真]
您能给出一个数字示例,以及您实际期望的结果吗?您的描述并不明显。因此,您希望删除除虚假值以外的所有非数字值,即null
,未定义的,NaN
,'
和false
?但仍将删除null
和true
和false
。我想这个问题很奇怪。是的,我写了它,然后决定我不是100%的OP真正想要的。