[js] - 문자열 다루기 기본

오유민·2024년 7월 12일
0

프로그래머스

목록 보기
10/10
post-thumbnail

🌟 Array.from

참고

🌟 parseInt

참고

🌟 map()

참고

[틀린 코드]

function solution(s) {
    var answer = true;
    
    if (s.length === 4 || s.length === 6){
        var arr = Array.from(s).map( x => {
            let num = parseInt(x);
            answer = isNaN(num) ? false : true ;
        });
        console.log(arr);       
    }    
    return answer;
}

문제점
1) map 함수는 배열의 각 요소를 변환하여 새로운 배열을 만듭니다. 하지만 여기서는 배열을 변환하지 않고, 단순히 answer 변수를 업데이트하려고 합니다.
2) answer 변수는 map 함수의 각 반복에서 계속해서 업데이트되기 때문에, 최종적으로 숫자가 아닌 문자가 있는 경우에도 마지막 값이 숫자라면 answer가 true로 설정될 수 있습니다.
3) parseInt 함수는 문자열의 첫 부분이 숫자인 경우 숫자를 반환하고, 그렇지 않으면 NaN을 반환합니다. Number 함수를 사용하면 숫자가 아닌 모든 문자를 NaN으로 변환할 수 있습니다.

========> 뭔가 더 어려운 함수로 풀어보려다가 미궁에 빠졌다...

정답 코드

function solution(s) {
    var answer = true;
    if (s.length === 4 || s.length === 6){
        for (i=0; i<s.length; i++){
            if (isNaN(s[i])){
                answer = false;
                break;
            }
        }  
    }
    else 
        answer = false;  
    return answer;
}
profile
개발자연습생의 개발 일기

0개의 댓글