문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
my_string | result |
---|---|
"aAb1B2cC34oOp" | 10 |
"1a2b3c4d123" | 16 |
연속된 숫자도 각각 한 자리 숫자로 취급합니다.
처음엔 for문으로 덧셈을 했다가 reduce도 써보자 해서 코드 변경
function solution(my_string) {
// let result = 0;
let arr = my_string.split("").map(Number).filter((el) => el);
// for (let i = 0; i < arr.length; i++) {
// result += arr[i];
// }
// return result;
let result = arr.reduce((a, b) => a + b)
return result;
}
정규식을 사용한 방법 (^)
function solution(my_string) {
const answer = my_string.replace(/[^0-9]/g, '')
.split('')
.reduce((acc, curr) => acc + Number(curr), 0);
return answer;
}
문자열 배열에 spread 연산자를 사용한 방법
function solution(my_string) {
return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}