- 발행일
24-04-03 코테 리스트
24-04-03 코테 리스트
이 글은 네이버 블로그에 2024년 4월 3일에 올렸던 것을 그대로 옮겨온 것입니다.
JavaScript의 reduce 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하여, 단일 결과값을 생성합니다. 이 메서드는 배열을 순회하면서 각 요소에 대한 연산을 누적적으로 수행합니다. reduce 메서드는 주로 배열 내의 모든 값의 합, 평균, 최대값 등을 계산할 때 사용됩니다.
기본 구문
reduce 메서드의 기본 구문은 다음과 같습니다:
array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)
- accumulator: 누적값으로, 이전 호출의 반환값이 여기에 저장됩니다. initialValue를 제공한 경우, 첫 번째 호출에서 accumulator는 initialValue의 값이 됩니다.
- currentValue: 처리할 현재 배열 요소입니다.
- currentIndex (선택적): 처리할 현재 배열 요소의 인덱스입니다. initialValue를 제공한 경우 0부터 시작하고, 그렇지 않으면 1부터 시작합니다.
- array (선택적): reduce 메서드를 호출한 배열입니다.
- initialValue (선택적): accumulator의 초기값입니다. 이 값을 제공하지 않으면 배열의 첫 번째 요소를 초기값으로 사용합니다. 배열이 비어 있고 initialValue가 제공되지 않으면 TypeError가 발생합니다.
예제: 합계 계산하기
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 출력: 10
이 예제에서는 numbers 배열의 모든 요소를 합산합니다. reduce 메서드의 첫 번째 인자로 주어진 화살표 함수는 누적값(accumulator)과 현재값(currentValue)을 더하고, 그 결과를 다음 반복의 누적값으로 사용합니다. reduce 메서드의 두 번째 인자는 accumulator의 초기값인 0입니다.
const numbers = [5, 2, 8, 3];
const max = numbers.reduce((acc, val) => (acc > val ? acc : val), numbers[0]);
console.log(max); // 출력: 8
이 예제에서 reduce는 배열 numbers의 각 요소를 순회하면서 현재의 누적값(acc)과 현재 요소의 값(val)을 비교합니다. 더 큰 값을 누적값으로 선택하여 최종적으로 배열의 최대값을 찾습니다.
reduce 메서드는 배열을 다루는 다양한 문제를 해결하는 데 매우 유용한 도구입니다. 배열의 요소를 기반으로 값을 누적하거나 결과를 계산할 필요가 있을 때 reduce를 사용할 수 있습니다.
JavaScript에서 push와 pop 메서드는 배열의 끝에 요소를 추가하거나 제거하는 데 사용됩니다. push 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, pop 메서드는 배열의 마지막 요소를 제거합니다. 여기 간단한 예제가 있습니다:
push 메서드 예제
push 메서드는 배열의 끝에 새로운 요소를 추가합니다. 여기서는 숫자 요소를 배열에 추가하는 예를 보여줍니다:
let numbers = [1, 2, 3];
console.log("Before push:", numbers);
// 배열의 끝에 새로운 요소를 추가합니다.
numbers.push(4);
console.log("After push:", numbers);
// 여러 요소를 한 번에 추가할 수도 있습니다.
numbers.push(5, 6);
console.log("After pushing multiple elements:", numbers);
Before push: [1, 2, 3]
After push: [1, 2, 3, 4]
After pushing multiple elements: [1, 2, 3, 4, 5, 6]
pop 메서드 예제
pop 메서드는 배열의 마지막 요소를 제거하고, 그 요소를 반환합니다. 배열이 비어 있을 경우 undefined를 반환합니다:
let fruits = ["Apple", "Banana", "Cherry"];
console.log("Before pop:", fruits);
// 배열의 마지막 요소를 제거합니다.
let removedFruit = fruits.pop();
console.log("After pop:", fruits);
console.log("Removed fruit:", removedFruit);
// 배열이 비어있는 상태에서 pop을 호출하면 undefined를 반환합니다.
fruits = [];
removedFruit = fruits.pop();
console.log("After popping from an empty array:", removedFruit);
Before pop: ["Apple", "Banana", "Cherry"]
After pop: ["Apple", "Banana"]
Removed fruit: Cherry
After popping from an empty array: undefined