为什么在JavaScript中,Array.filter(Number)会过滤掉零?
- 论坛
- 为什么在JavaScript中,Array.filter(Number)会过滤掉零?
7 浏览
为什么在JavaScript中,Array.filter(Number)会过滤掉零?
我试图从数组中过滤出所有非数字元素。使用typeof可以看到期望的输出。但是使用Number时,会将零过滤掉。
以下是示例(在Chrome控制台中测试):
[-1, 0, 1, 2, 3, 4, Number(0), '', 'test'].filter(Number) // 输出结果中零被过滤掉: [-1, 1, 2, 3, 4] // 零被过滤了
如果使用typeof,它不会过滤零,这是预期的。
// 代码 [-1, 0, 1, 2, 3, 4, Number(0), '', 'test'].filter(n => typeof n === 'number') // 输出结果 [-1, 0, 1, 2, 3, 4, 0]
我的问题:
- “Number”和“typeof”方法之间有什么区别?
- Number会过滤零,但“Number”本身实际上包含零,这让我感到困惑。