“reduce()” 함수는 배열의 각 요소에 대해 주어진 콜백 함수를 실행하고, 이전 요소와 현재 요소의 값을 결합하여 단일 값을 반환합니다. 이 함수를 사용하면 배열 요소의 누적된 합계, 평균, 최댓값, 최솟값 등을 계산할 수 있습니다. “reduce()” 함수를 사용하여 배열의 요소를 축소하고 단일 값을 생성할 수 있습니다. 또한 초기값(“initialValue”)을 제공하면 누적 값의 초기 상태를 설정할 수 있습니다.
◎ 1. 구문 |
array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
l “callback”: 각 요소에 대해 실행할 함수.
l “accumulator”: 누적된 값.
l “currentValue”: 배열의 현재 요소.
l “index” (선택 사항): 배열 요소의 인덱스.
l “array” (선택 사항): “callback”이 호출된 배열.
l “initialValue” (선택 사항): 누적 값의 초기값.
◎ 2. 배열의 합계 구하기 |
accumulator 이전 값이고 currentValue 현재 배열의 요소 값입니다. 두 값을 합쳐서 전체 합계를 구합니다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
[출력]
15
◎ 3. 배열의 최댓값 구하기 |
Math.max 함수로 이전 값인 accumulator 과 현재 값인 currentValue 중 최대 값을 반환합니다. 그래서 reduce 함수는 배열에서 가장 큰 값을 반환합니다.
const numbers = [10, 5, 8, 25, 3];
const max = numbers.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue), -Infinity);
[출력]
25
Math.max 함수는 다음을 참고하세요.
https://mainia.tistory.com/7043
◎ 4. 배열의 평균 계산 |
“const average = values.reduce((accumulator, currentValue, index, array) => {...}, 0);” 의 두 번째 인수는 누적 값을 초기화하는 값으로, 여기서는 “0”으로 설정합니다. 콜백 함수 “(accumulator, currentValue, index, array) => {...}” “index”는 현재 요소의 인덱스를 나타내며, “array”는 원본 배열을 나타냅니다. 콜백 함수는 각 요소마다 실행되므로 배열의 마지막 요소에 도달했을 때 (“index === array.length - 1”), 콜백 함수는 “accumulator”를 배열의 길이로 나누어 평균값을 반환합니다.
“const average = ...;”: “reduce” 메서드의 실행 결과, 즉 최종 평균값이 “average” 변수에 할당됩니다. 결과적으로, “average” 변수에는 배열 “values”의 요소의 평균값이 저장됩니다. 이 코드를 실행하면 “average”에 배열 요소의 평균값인 “30 을 반환합니다.”
const values = [10, 20, 30, 40, 50];
const average = values.reduce((accumulator, currentValue, index, array) => {
accumulator += currentValue;
if (index === array.length - 1) {
return accumulator / array.length;
}
return accumulator;
}, 0);
[출력]
30
◎ 5. 배열 요소 문자열로 결합 |
배열의 각 요소에 문자열을 합쳐서 전체를 반환합니다.
const words = ["Hello", " ", "World", "!"];
const combined = words.reduce((accumulator, currentValue) => accumulator + currentValue, "");
[출력]
"Hello World!"
'웹 프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트 replace() 문자열 대체하고 바꾸기 (1) | 2023.12.31 |
---|---|
자바스크립트 trim() 함수 앞뒤 공백 제거 (0) | 2023.12.31 |
자바스크립트 find() 함수 조건에 맞는 요소 찾기 (2) | 2023.12.31 |
자바스크립트 foreach() 함수 배열 각 요소에 함수 실행 (0) | 2023.12.17 |
자바스크립트 Math.max() 함수 가장 큰 숫자 반환하기 (0) | 2023.12.07 |
자바스크립트 숫자 여부를 판단하는 isNaN 함수 사용하기 (0) | 2023.12.07 |
자바스크립트 함수 reverse() 배열 요소 역순으로 뒤집는 방법 (1) | 2023.12.03 |
자바스크립트 map() 함수 배열 값을 변형해서 새로운 배열 만들기 (2) | 2023.12.03 |