문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
const num = my_string.split("");
let result = 0;
for(let i = 0; i < num.length; i++)
{
if(Number(num[i]))
{
result += Number(num[i])
}
}
return result
}
split() 메소드를 사용했기 때문에 문자열이 잘라서 반환 될 것이다.
split()
그리고 num 길이만큼 반복문을 돌리고
num이 나오면 하나씩 result에 더해주는 방식을 사용했다.
<script>
function solution(my_string) {
return my_string.match(/[0-9]/g).reduce((a,b) => parseInt(a)+parseInt(b));
}
</script>
다른 사람 풀이를 보니까 정규표현식을 사용하셨더라.
/[0-9]/g
/ 사이에 모든 숫자를 매칭하는 [0-9]에 발생할 모든 패턴에 대한 전체 검색을 뜻하는 플래그인 g를 붙여 0-9에 해당되는 것을 반환
match() 메소드 이용해서 문자열이 정규식과 매치되는 부분을 검색
그리고 매칭시켜 뽑은 숫자들의 합을 구한다
reduce()메소드 이용
문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환한다.