1 분 소요

Reduce()

reduce는 배열의 각 요소에 대해 주어진 리듀서 함수를 실행하고, 하나의 결과값을 반환하는 메서드이다.

우선, reduce의 문법 구조부터 살펴보자.

배열.reduce((누적값, 현재값, 인덱스, 요소) => { return 결과 }, 초깃값);


덧셈 예시

  1. 초깃값이 있을 때
var oneTwoThree = [1, 2, 3];

result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
}, 0); // 초깃값 0

// 0 1 0
// 1 2 1
// 3 3 2
result; // 6
  1. 초깃값이 없을 때 : 초깃값이 없을 때는 0번째 인덱스가 초깃값이 된다!!
var oneTwoThree = [1, 2, 3];

result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
}); // 초깃값 없음
// 1 2 1
// 3 3 2
result; // 6


객체에서 원하는 값만 사용하기

reduce에 대해 작성하기 위해 구글링을 하다가 보게 된 한 블로그에서 원하는 값만 사용하는 방법을 발견하였다.

뭔가 보고나니까 당연한 사실인데 막상 사용하려하면 생각을 못 할 것 같아서 작성한다!

const friends = [
  {
    name: "짱구",
    age: 28,
    job: "회사원",
  },
  {
    name: "철수",
    age: 38,
    job: "은행원",
  },
  {
    name: "유리",
    age: 33,
    job: "요리사",
  },
];

// 3명의 나이를 더해봅니다.
// 여기서 초기값 설정이 반드시 필요합니다.
const ageSum = friends.reduce((accumulator, currentObject) => {
  return accumulator + currentObject.age;
}, 0);

console.log("나이 합 ", ageSum); // 친구들 나이 합  99

댓글남기기