문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
해답
function solution(s) {
if(s.length === 4 || s.length === 6){
return s.split("").every(c => !isNaN(c)) // 모든 요소가 number이면 true리턴
} else {
return false;
}
}
isNaN()은 is Not a Number이다. 매개변수가 숫자가 아닐경우는 true를 리턴하고, 숫자일 경우는 false를 리턴한다.
isNaN을 이용하여 풀었는데, MDN을 확인해보니 등호 연산자(==, ===)를 사용해 판별할 수 없다고 한다. NaN == NaN, NaN === NaN은 false로 평가되기 때문인데, 그냥 ()안에 대상값을 넣어서 boolean을 반환받는다.
그리고 every에 넣어준 이유는 숫자에 e가 붙으면 문자인 경우도 숫자로 인식하여 각각 떼어내서 확인하는 것으로 문제를 해결하였다.
'내용 복습 > 알고리즘' 카테고리의 다른 글
[코드 없는] 알고리즘 1장 내용 정리 (1) | 2024.02.19 |
---|---|
[JS] 프로그래머스- 최대공약수와 최소공배수 (0) | 2024.02.13 |
[JS] 프로그래머스 - 부족한 금액 계산하기 (0) | 2024.02.05 |
프로그래머스 1단계 내적 - arr.reduce (0) | 2024.01.31 |
프로그래머스 1단계 - 나누어 떨어지는 숫자 배열 (0) | 2024.01.22 |