반응형
문제
한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
정답
function solution(num_str) {
const a = num_str.split('') //문자열을 '' 이용해서 배열로 변환시킨다.
const b = a.map(Number) // 배열에 있는 문자열을 숫자로 변경한다.
return b.reduce((c,d)=>c+d); // 배열의 숫자의 값을 더한다.
}
코드 리펙토링
function solution(num_str) {
return [...num_str].reduce((a, c) => a + +c, 0)
}
// spread 연산자를 이용해 개별 배열 요소로 나눔.
// reduce 함수는 배열의 각 요소를 순회하면서 누적 합을 계산해.
// 여기서 a는 누적값이고, c는 현재 배열 요소를 나타내.
// +c는 현재 배열 요소인 c를 숫자로 변환해. 예를 들어, '1'은 숫자 1로 변환됨.
// a + +c는 현재 누적값 a에 현재 요소 c를 숫자로 변환한 값을 더해.
// 초기값은 0이므로 reduce 함수는 첫 번째 요소부터 시작해 누적 합을 계산해.
// 새로운 배열을 반환하는 메소드
// spread operator, map, filter, slice, reduce
// * splice는 원본데이터를 변경함
반응형