coding/JS

js reduce()

JIN_Coder 2022. 12. 19. 15:40

reduce()는 배열의 각 요소를 순회하며 callback 함수의 실행 값을 누적하여 하나의 결과값을 반환함

arr.reduce(callback[, initalValue])

 

callback 함수

4가지 인수

    1. acc : callback 함수의 반환값을 누적

    2. cur : 배열의 현재 요소

    3. index(Optional) : 배열의 현재 요소의 인덱스

    4. arr(Optional) : 호출한 배열

 

initialValue(Optional)

최초 callback 함수 실행시 acc 인수에 제공되는 초기값

initialValue 미설정시 초기값을 배열의 첫번째 요소 사용

빈배열에서 initialValue미 설정시 에러 발생

 

 

Ex) 가장 간단한 표현

const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur) => { return acc + cur }, 0);
console.log(result);   // 25

 

initialValue 설정 유무

const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur, i, arr) => {
  console.log("acc : ", acc, "cur : ", cur, "index : ", i, "arr : ", arr);
  return acc + cur;
}, 0); // initialValue 0으로 설정
console.log(result);

/*
acc :  0 cur :  1 index :  0 arr :  [ 1, 3, 5, 7, 9 ]
acc :  1 cur :  3 index :  1 arr :  [ 1, 3, 5, 7, 9 ]
acc :  4 cur :  5 index :  2 arr :  [ 1, 3, 5, 7, 9 ]
acc :  9 cur :  7 index :  3 arr :  [ 1, 3, 5, 7, 9 ]
acc :  16 cur :  9 index :  4 arr :  [ 1, 3, 5, 7, 9 ]
25
*/
const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur, i, arr) => {
  console.log("acc : ", acc, "cur : ", cur, "index : ", i, "arr : ", arr);
  return acc + cur;
}); // initialVlue 미설정
console.log(result);

/*
acc :  1 cur :  3 index :  1 arr :  [ 1, 3, 5, 7, 9 ]
acc :  4 cur :  5 index :  2 arr :  [ 1, 3, 5, 7, 9 ]
acc :  9 cur :  7 index :  3 arr :  [ 1, 3, 5, 7, 9 ]
acc :  16 cur :  9 index :  4 arr :  [ 1, 3, 5, 7, 9 ]
25
*/

 

 

 

 

 

[Node.js] javascript: Array.reduce() 사용 방법 정리

Array.reduce() ● 기본 정리 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. arr.reduce(callback[, initialValue]) callback : 배열의 각 요소에 대해 실행할 함수.

miiingo.tistory.com

 

'coding > JS' 카테고리의 다른 글

재귀함수 recursion Function  (0) 2022.12.20
.prettierrc 설정  (0) 2022.09.01
소수점 반올림  (0) 2022.08.30
supertest 테스트 코드 작성  (0) 2022.08.11
jest 테스트 코드 작성 방법  (0) 2022.08.11