밤토리
728x90

오늘은 Javascript reduce에 대해서 포스팅 해봅니다.

reduce 메소드는 현업에서도 종종 쓰이며, 알고리즘 꽤 많은 것을 구현할 수 있습니다.

 

 

  • Reduce

reduce에서 첫번째 인자인 누적값(accumulator)과 두번째 인자인 현재값(currentValue)을 가지고 있습니다.

보통 배열의 합을 구하거나, 특정 배열의 중복 제거, 같은 값을 찾을 때 사용할 수 있습니다.

 

 

<javascript />
// 1. 배열의 합 const arr = [1, 7, -8, 5, 2]; //sum = 7 const result = arr.reduce((accu, curr) => { //accu : 누산값, curr 현재 누산할 값 // console.log('[accu] : ', accu, ', [curr] : ', curr, ', [accu + curr] : ', accu + curr); return accu + curr; }, 0); // 누산할 초기값 : 0 // console.log('@result : ', result); // @결과 // accu : 0 curr : 1 // accu : 1 curr : 7 // accu : 8 curr : -8 // accu : 0 curr : 5 // accu : 5 curr : 2 // @result : 7 // 2. 임직원 중 나이가 30 이상인 임직원 이름 찾기 const employee = [ { name : 'kim', age : 28}, { name : 'park', age : 34}, { name : 'lee', age : 31}, { name : 'kwon', age : 29}, { name : 'kim', age : 41}, ]; const empName = employee.reduce((prev, curr) => { if(curr.age > 30) { prev.push(curr.name); } return prev; }, []); // 초기값 : 빈 배열 console.log('@empName : ', empName); // @empName : [ 'park', 'lee', 'kim' ] // 3. 응용 : 같은 성을 가진 임직원 COUNT const empNameCnt = employee.reduce((prev, curr) => { prev[curr.name] = (prev[curr.name] || 0) + 1; return prev; }, []); // 초기값 : 빈 배열 console.log('@empNameCnt : ', empNameCnt); // @empNameCnt : [ kim: 2, park: 1, lee: 1, kwon: 1 ]

 

728x90
profile

밤토리

@밤토리아이티

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!