문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
function solution(s){
return ((s.length === 4 || s.length === 6) && (Number(s))) ? true:false
}
는 fail .... 테스트 16개중에 15개 통과하고 하나를 fail했다 ... 나 뿐만 아니라 다른 사람들도 똑같이 테스트 11번에서 실패가 떠서 질문하는 사람들이 많았는데 이유가 "1e16"같은 4자리 숫자이지만 실제로는 훨씬 더 큰 단위의 숫자인것들에서 fail이 나는것 ... 이런것들을 거르기 위해서 다음과 같이 수정했다..
function solution(s){
if(s.includes('e')){
return false}
if ((s.length === 4 || s.length === 6) && (Number(s))) {
return true
} else return false
}
'e'가 있다면 ,,, ㅎㅎㅎㅎ
참고로 Number("1e16")을 할경우 이렇게 뜬다.
Number("1e16") // 10000000000000000
function solution(s){
var regex = /^\d{6}$|^\d{4}$/;
return regex.test(s);
}
다른 사람들이 "코드의 마법사", "코딩 타노스" 라며 찬사를 하던 베스트 풀이 ... 정규식이라는데 뭔지 한번 찾아봐야겠다 ... 지금은 뭔지 이해가 전혀 안간다.
function solution(s) {
return s.length == 4 || s.length == 6 ? !isNaN(s) : false
}
삼항연산자~!!!!!
isNaN()
의 경우엔 다음과 같이 나온다
s = "1234"
isNaN(s) //false
!isNaN(s) //true