알고리즘 - 숫자 문자열과 영단어

문제

코드

function solution(s) {
    
    let obj ={
        'zero': 0,
        'one': 1,
        'two': 2,
        'three': 3,
        'four': 4,
        'five': 5,
        'six': 6,
        'seven': 7,
        'eight': 8,
        'nine': 9,
    }    
    let arr = s.split(/(zero|one|two|three|four|five|six|seven|eight|nine)/g).filter(e=>e!="");
    //console.log(s.split(/(zero|one|two|three|four|five|six|seven|eight|nine)/g).filter(e=>e!=""))
    
    let answer = arr.map(e=>{
        if(parseInt(e)){
            return e;
        }else{
            return obj[e];
        }
    }).join("");
    
    
    return parseInt(answer);
}

회고

  • 빈 배열의 결과가 생기는 것을 filter를 통해서 없애주고 있는데, 미리 없앨 수는 없을까?

좋은 웹페이지 즐겨찾기