반응형
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
a return
"a234" false
"1234" true
문제 풀이
본처음엔 아래와 같은 코드로 풀었다
function solution(s) {
var answer;
if(s.length === 4 || s.length === 6){
if(isNaN(s)){
answer = false;
} else {
answer = true;
}
} else {
answer = false;
}
return answer;
}
isNaN
을 통해 해당 값이 숫자인지 먼저 확인해주어서 풀었다.
isNaN
isNaN = is Not Number
매개변수가 숫자가 아닐 경우 return true
매개변수가 숫자일 경우 return false
이렇게 풀면 case 하나에서 오류 발생
이유는 자바스크립트의 문제!
숫자에 e가 붙으면 지수로 인식해 문자도 숫자로 인식해 버리는 경우!
function solution(s) {
if(s.length === 4 || s.length === 6){
return [...s].every(num => !isNaN(num)) // 모든 요소가 number이면 true리턴
} else {
return false;
}
}
먼저 문자열인 s를 문자 하나하나를 리스토화 시키고 [...s] every 함수를 이용해서 문자열을 하나하나씩 이용해서 문자를 풀었다. e가 들어가도 문자열 하나로 인식하게끔해서 false를 반환하게해서 문제를 해결했다
반응형
'JAVASCRIPT' 카테고리의 다른 글
[Javascript] for ...in, for ...of의 차이 (0) | 2024.03.03 |
---|---|
[Javascript] 순수 javascript로 slide toggle 구현 (0) | 2023.12.16 |
[Javascript] 할인율 계산하기 (0) | 2023.11.09 |
[Javascript] JS로 HTML 요소 생성 및 추가 방법 (0) | 2023.10.23 |
[JavaScript] call(), apply(), bind() 간단 차이점 비교하기 (0) | 2023.10.20 |