오늘 프로그래머스에서 문제를 풀면서 filter로 숫자만 걸러낼려고 했다.
//예시
[1,2,3,'1','a',NaN,0].filter((v)=> Number(v));
//result:[1, 2, 3, "1"]
나는 0도 함께 숫자로서 return받기를 원했는데 처음에 왜 안나오는지 이해할 수 없었다.
filter는 조건이 참인 값만 return해주는데 0은 false 이기때문이다
[1, 2, 3, "1", "a", NaN, 0].filter((v) => Number.isFinite(v));
// [1, 2, 3, 0]
Number.isFinite()는 주어진 값이 유한수인지 판별하는 함수이다.
Mdn 예시
console.log(Number.isFinite(1 / 0));
// expected output: false
console.log(Number.isFinite(10 / 5));
// expected output: true
console.log(Number.isFinite(0 / 0));
// expected output: false