문제 상황
이번 글에서는 숫자로 이루어진 배열을 입력받아, 원본 배열에서 인접한 두 요소의 합을 새로운 배열의 요소로 담아 반환하는 JavaScript 함수를 작성해 보겠습니다.
예를 들어, 입력 배열이 다음과 같다면 −
const arr = [3, 6, 3, 87, 3, 23, 2, 2, 6, 8];
첫 번째와 두 번째 요소(3+6), 세 번째와 네 번째 요소(3+87)의 합을 차례대로 계산하므로 출력 결과는 다음과 같아야 합니다 −
const output = [9, 90, 26, 4, 14];
예제 코드
다음은 해당 기능을 구현한 코드입니다 −
const arr = [3, 6, 3, 87, 3, 23, 2, 2, 6, 8];
const twiceSum = arr => {
const res = [];
for(let i = 0; i < arr.length; i += 2){
res.push(arr[i] + (arr[i+1] || 0));
};
return res;
};
console.log(twiceSum(arr));코드 설명
• for 루프: 반복 변수 i가 매번 2씩 증가하므로, 배열을 두 칸씩 건너뛰며 순회합니다.
• 짝 처리: arr[i]와 바로 다음 요소인 arr[i+1]을 더해 새 배열에 저장합니다.
• 홀수 길이 대응: 마지막 짝이 없는 경우를 위해 (arr[i+1] || 0)을 사용하여, 다음 요소가 undefined일 때 0을 더하도록 처리했습니다.
출력 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다 −
[ 9, 90, 26, 4, 14 ]