https://school.programmers.co.kr/learn/courses/30/lessons/120864?language=javascript
function solution(my_string) {
let result = 0;
for(let i = 0; i < my_string.length; i++){
let tmp = 0;
while(!Number.isNaN(Number(my_string[i]))){
tmp += my_string[i];
// console.log(tmp);
i++;
}
result += Number(tmp);
console.log(result);
}
return result;
}
우선 예외 사항 문자열에 자연수가 없는 경우 0을 return해야하는 부분을 조심해야 합니다.
while문과 Number.isNaN을 활용했습니다.
Number.isNaN은 ECMAScript2015에 추가된 문법입니다.
isNaN 함수는 인수가 Number type이 아닌경우, 그 값을 숫자로 강제합니다.
tmp에다 숫자를 찾으면 하나씩 넣어주고, 붙어있는 숫자를 tmp에 저장합니다. (숫자열 + 문자열 = 문자열) 따라서 tmp에 연결된 숫자 저장합니다. 이후 i 값을 더해주면서 진행했습니다.
원하는 결과값을 얻기 위해 result += Number(tmp)를 활용했습니다. tmp에 임시 저장된 문자형태의 값을 Number(tmp)로 변환 후 result에 더해줍니다. 이후 마지막에 return result를 통해 문제의 답을 도출해낼 수 있습니다.