function solution(my_string) {
const numbers = my_string.replace(/[^0-9]/g, ''); // 숫자를 제외한 모든 문자 제거
const sum = numbers.split('').reduce((acc, val) => acc + Number(val), 0);
// 문자열을 숫자 배열로 변환 후 모두 더하기
return sum
}
▶ reduce() 메서드에서 두 번째 인자로 초기값을 설정하지 않으면 배열의 첫 번째 요소가 초기값이 된다.
위 예제 코드에서는 초기값으로 0을 설정하였기 때문에, acc 변수의 초기값은 0이 되며,
배열의 모든 요소를 더하는 과정에서 처음에 acc 값으로 0을 사용하게 된다.
▶ 정규식에서 /는 정규식이 시작되고 끝나는 부분을 나타내는 기호입니다.
예를 들어, /[a-z]/는 알파벳 소문자를 매칭하는 정규식입니다.
▶ 정규식에서 [^...]는 대괄호 안에 포함된 문자를 제외한 문자를 매칭하는 의미한다.
[0-9]는 0부터 9까지의 숫자를 매칭하는데, [^0-9]는 이와 반대로 "숫자를 제외한" 모든 문자를 매칭한다.
▶ g는 global의 약어로, 정규식 검색을 전체 문자열에서 한 번이 아닌 모든 부분에서
찾도록 지시하는 플래그이다.
g를 사용하지 않으면, 검색 결과로 첫 번째 일치하는 부분만 반환됩니다.
예를 들어, str.replace(/a/, 'b')는 문자열 str에서 첫 번째 나타나는 a 문자를 b로 변경합니다.
하지만 str.replace(/a/g, 'b')는 문자열 str에서 모든 a 문자를 b로 변경합니다.
'프로그래머스(자바스크립트) > LV.0(자바스크립트)' 카테고리의 다른 글
대문자와 소문자 ★★★ (0) | 2023.02.27 |
---|---|
모음제거 → 문자열 다루기, 파이썬과 자바스크립트의 차이 (0) | 2023.02.27 |
자릿수 더하기 ★★ → %, = (0) | 2023.02.27 |
중앙값 구하기 → array.sort() vs array.sort((a,b) => a - b); (0) | 2023.02.27 |
배열의 유사도 → in 연산자, includes 연산자 (0) | 2023.02.27 |