Number.isNaN()
문자열로 이루어진 배열이 있습니다.
"123"처럼 숫자로 읽을 수 있는 문자도 있고,
"1a"처럼 숫자로 읽을 수 없는 문자도 있습니다.
이 배열이 주어질 때
숫자로 읽을 수 있는 경우에는 숫자로 바꿔
총 합을 리턴하는 함수 solution을 완성해주세요.
function solution(arr) { let sum = 0; for (let i = 0; i < arr.length; i++) { let data = arr[i]; if (Number.isNaN(data / 3) === false) sum = sum + Number(data); } return sum; } const arr = ["1", "2w", "3", "qwer"]; const result = solution(arr); console.log(result); // 4
개인적으로는 정말 싫다 진짜 진짜 싫어하는 메소드다
왜냐하면 이것은 숫자가 아니라고(NaN) 분류를 해주는 역할을 하는데
나는 숫자도 분류해주겠지 ㅎㅎ! 라고 생각을 했기 때문이다
NaN은 Not-A-Number라는 의미로 숫자 아님!라는 뜻을 가지고 있는데
정말 그것 자체로만 분류를 해줘서 문제다.
"문자" / 숫자는 ? 문자를 1로 나눌 수 없으니까 NaN이 나온다.
그런데? 자바스크립트 특성상
"숫자" / 숫자 은 숫자가 된다.
그래서 Number.isNaN로는 숫자를 판별할 수 없다.
이게 진짜 문자열인지? 도 확신할 수 없다.
넣는 값이 "5" 이러면 문자열인데 숫자로 치는거니까.
숫자를 판별하려면 tpyeof를 사용하는 수 밖에 없는데...
왜... 개선...안해주지,,,,?
TypeScript에서 해드렸습니다 ^^ 써보시죠! 아 진짜
Author And Source
이 문제에 관하여(Number.isNaN()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yukina1418/Number.isNaN저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)