Я пытаюсь отфильтровать все нечисловые элементы из массива. Мы можем видеть желаемый результат при использовании typeof. Но с Number он фильтрует ноль.
Вот пример (проверено в Chrome Console):
[-1, 0, 1, 2, 3, 4, Number(0), '', 'test'].filter(Number)
// Which output with zero filtered out:
[-1, 1, 2, 3, 4] // 0 is filtered
Если мы используем typeof, он не фильтрует ноль, что и ожидалось.
// code
[-1, 0, 1, 2, 3, 4, Number(0), '', 'test'].filter(n => typeof n === 'number')
// output
[-1, 0, 1, 2, 3, 4, 0]
Мой вопрос:
-
В чем разница между подходами "число" и "типоф"?
-
Число фильтрует ноль, но само "Число" буквально содержит ноль, и это меня смущает.