티스토리 뷰
Array.prototype.reduce()
JavaScript의 `reduce()` 메소드는 배열의 모든 요소를 각각 한 번씩 실행하는 함수입니다. 이 함수는 네 가지 인수를 취합니다. 첫 번째와 두 번째 인수는 누산기와 현재 값이며, 세 번째 인수는 현재 인덱스, 네 번째 인수는 원본 배열입니다.
기본 사용법
arr.reduce(callback( accumulator, currentValue, [, index[, array]] )[, initialValue])
accumulator는 누산기입니다. 이전 단계의 callback 함수 호출에서 반환한 값이며, 이 값은 callback의 첫 번째 인수로 제공됩니다
currentValue는 배열에서 처리중인 현재 요소입니다.
index와 array는 선택적인 매개변수로, 배열에서 처리중인 현재 요소의 인덱스와 reduce가 호출된 배열을 나타냅니다.
initialValue는 선택적 값으로, 첫 번째 호출의 accumulator 값으로 사용됩니다. 만약 제공되지 않으면 배열의 첫 번째 요소가 accumulator로 사용되며, callback은 인덱스 1에서 시작합니다. 만약 initialValue가 제공되면 accumulator로 사용되며, callback은 인덱스 0에서 시작합니다.
간단한 예제로 숫자 배열의 합계를 계산해봅시다:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // Output: 15
이 예제에서, reduce() 함수는 numbers 배열의 모든 요소를 순회하며, 각 요소를 accumulator에 더하고 그 결과를 sum에 저장합니다. 초기 accumulator 값은 0입니다.
또한 minValue 구할때도 유용하게 사용될 수 있습니다.
let data = [5, 2, 9, 8, 4]
let minValue = data.reduce((a,b) => Math.min(a,b));
console.log(minValue); // Output: 2
이렇게 reduce() 메소드는 배열의 모든 요소에 대해 함수를 실행하고, 단일 출력값을 생성하는 데 유용하게 사용됩니다.
'알고리즘 > 기본개념' 카테고리의 다른 글
javascript - 큐(queue) (0) | 2023.06.23 |
---|---|
javascript - 스택(stack) (0) | 2023.06.22 |
집합 자료형 - Set (0) | 2023.06.15 |
배열 초기화 (0) | 2023.06.14 |
시간 복잡도 (0) | 2023.06.12 |