개발/Algorithm

[알고리즘 javaScript] 숫자 추출

개발 여행 2021. 11. 24. 20:03
728x90

parseInt 문자열에서 숫자만 추출해보자!

 

설명

parseInt를 사용하지 않고 문자열에서 추출한 정수를 반환

function extractNumbers(string) {
  let result = 0;

  if (typeof string !== "string") {
    return false;
  }

  for (const char of string) {
    if (!isNaN(char)) {
      result = result * 10 + Number(char);
    }
  }

  return result;
}

parseInt를 사용하지 않고 문자열 '00ab30c4' 에서

숫자 304만 반환받으려면 자릿수를 이용해서 반환값을 계산할 수 있다.

 

result = result * 10 + Number(char); 구문에서

 

1) char에 첫 번째 0이 들어왔을 때는

0 * 10 + 0 = 0

 

2) char에 두 번째 0이 들어왔을 때

0 * 10 + 0 = 0

 

3) char가 3일 때

0 * 10 + 3 = 3

 

4) char가 (세 번째)0일 때

3 * 10 + 0 = 30

 

5) char가 4일 때

30 * 10 + 4 = 304

 

위의 과정을 거치면 최종적으로 result에는 304가 할당된다.

따라서 extractNumbers('00ab30c4');를 호출하면 304가 반환된다.

728x90