Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 배열에서 짝수 위치(인덱스) 요소의 합 구하는 3가지 방법

배열에서 짝수 위치에 있는 숫자들의 합을 구하는 방법은 여러 가지가 있습니다. 참고로 JavaScript 배열의 인덱스는 0부터 시작하기 때문에, 여기서 '짝수 위치'란 0번째, 2번째, 4번째 인덱스를 의미합니다. 이 글에서는 그중 가장 많이 사용되는 3가지 방법을 예제와 함께 살펴보겠습니다.

1. for 반복문 사용하기

가장 기본적이고 직관적인 방법은 for 반복문을 직접 사용하는 것입니다. 인덱스 변수를 2씩 증가시키면 자연스럽게 짝수 인덱스의 요소만 순회할 수 있습니다.

예제

let arr = [1, 2, 3, 4, 5, 6];
let sum = 0;
for(let i = 0; i < arr.length; i += 2) {
    sum += arr[i];
}
console.log(sum);

출력

9

위 예제에서는 인덱스 0, 2, 4에 해당하는 값인 1, 3, 5가 더해져 최종 결과로 9가 출력됩니다.

2. forEach 메서드 사용하기

배열을 명시적으로 반복하는 대신, 내장 메서드인 forEach를 활용할 수도 있습니다. forEach는 각 요소마다 실행될 콜백 함수를 인자로 받으며, 이 콜백 함수는 요소 값과 함께 현재 인덱스도 전달받을 수 있습니다.

예제

let arr = [1, 2, 3, 4, 5, 6];
let sum = 0;
arr.forEach((elem, i) => {
    if(i % 2 === 0) {
        sum += elem;
    }
});
console.log(sum);

출력

9

콜백 함수 안에서 인덱스를 2로 나눈 나머지가 0인 경우, 즉 짝수 인덱스일 때만 값을 누적하므로 동일한 결과를 얻을 수 있습니다.

3. filter와 reduce 사용하기

함수형 프로그래밍 스타일을 선호한다면 filterreduce를 조합하는 방법이 유용합니다. 먼저 filter로 짝수 인덱스의 요소만 걸러낸 뒤, reduce로 걸러진 요소들의 합계를 한 번에 계산합니다.

예제

let arr = [1, 2, 3, 4, 5, 6];
let sum = arr.filter((_, i) => i % 2 === 0).reduce((curr, acc) => acc + curr, 0);
console.log(sum);

출력

9

filter의 콜백 함수에서 첫 번째 매개변수는 사용하지 않으므로 밑줄(_)로 표기했으며, 두 번째 매개변수인 인덱스만으로 필터링 조건을 판단합니다.

마무리

세 가지 방법 모두 같은 결과를 반환하지만 상황에 따라 적합한 선택이 달라집니다. 단순하고 성능이 중요한 경우에는 for 반복문이, 코드의 간결함이 중요한 경우에는 filter와 reduce의 조합이 좋은 선택입니다. forEach는 가독성과 유연성 사이의 균형이 좋아 실무에서 널리 사용됩니다.