array.reduce()

SungJunEun·2021년 10월 30일
0

JS의 기본 개념들

목록 보기
6/9
post-thumbnail

arr. reduce(callback, initialValue)

  • callback

    배열의 각 요소에 대하여 한번씩 실행한다.

    • accumulator

      콜백의 반환값을 누적한다.

    • currentValue

      처리할 현재 요소

    • currentIndex (optional)

      처리할 현재 요소의 인덱스

    • array (optional)

      reduce를 호출한 배열

  • initialValue (optional)

    최초 호출에서 첫번째 인수로 제공하는 값

initalValue가 주어진 경우에 처음 accumulator는 initialValue가 되고 currentValue는 첫번째 값이 된다. initialValue가 주어지지 않은 경우에는 처음 accumulator는 배열의 첫번째 값이 되고, currentValue는 두번째 값이 된다.

Example

var people = [
  { name: 'Alice', age: 21 },
  { name: 'Max', age: 20 },
  { name: 'Jane', age: 20 }
];

function reducer(acc,curr) {
  let key = curr[groupBy.property];

  if(!acc[key]) {
    acc[key] = [];
  }
  acc[key].push(curr);
   return acc;
}

function groupBy(array, property) {
  return array.reduce(reducer,{});
}

const ageGroupby = groupBy(people,'age');
console.log(ageGroupby);

/*
[object Object] {
  undefined: [[object Object] {
  age: 21,
  name: "Alice"
}, [object Object] {
  age: 20,
  name: "Max"
}, [object Object] {
  age: 20,
  name: "Jane"
}]
}
*/
profile
블록체인 개발자(진)

0개의 댓글

관련 채용 정보