Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

“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

 

자바스크립트 Math.max() 함수 가장 큰 숫자 반환하기

“Math.max()” 함수는 주어진 숫자들 중에서 가장 큰 숫자를 반환하는 함수입니다. “Math.max()” 함수는 숫자들 중에서 최댓값을 찾아 반환합니다. 주로 여러 숫자나 변수 중에서 가장 큰 값을 필

mainia.tistory.com

 

 

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!"
반응형
Posted by 녹두장군1
,