Extend-w1D4) reduce() 배열 누적합 (array) 메서드

horiz.d·2022년 7월 7일
0

AI양재허브 웹트랙

목록 보기
7/11

array 메서드인 리듀스에 대해 알아보자


arr.reduce() 메서드

파라미터

  • accumulate value : 누적합산 값
  • current value : 배열 진행 상 선택되는 현재 item값
  • current index : 배열 진행 상 현재 index
  • initial value : 시작 시, 누적합산값의 초기화 값 설정




EX1. 리듀스 일반 활용


//Form
arr.reduce( (accVal, currVal, currIdx) => {...return}, InitialVal )

arr = [1,2,3,4]

//ex1.
arr.reduce( (acc, cur, curIdx) => {return acc += cur} , 0 )
	//반환값 : 10

//ex2.
arr.reduce( (accVal, curVal, curIdx) => {return acc += (curVal +curIdx), 0)
	//반환값: 16

//ex3.
arr.reduce( (acc, cur, curIdx) => {return acc += cur} , 5)
	//반환값 : 15                         


EX2. Obj를 item으로 담은 배열의 reduce 활용


// objArr_1. 객체를 저장한 배열로 reduce 누적합 활용
const obj =[{quntity: 1},{quntity: 2},{quntity: 3}]

const total =obj.reduce((acc,cur)=> acc+cur.quntity,0)

console.log(total) // 6


//objArr_2.
const order =[
  {price:1000,amount:4},
  {price:2000,amount:3},
  {price:3000,amount:2},
  {price:4000,amount:1},
]

const total = order.reduce((acc,cur)=> acc+(cur.price)*(cur.amount),0)

console.log(total)//20000




EX3. reduce를 활용 Array to Object 변환


const names =['sewon','yejin']

const result=names.reduce((acc,cur)=>{ 
 	 	acc[cur]=cur   
  		return acc
    },
 {})

console.log(result) //{ sewon: 'sewon', yejin: 'yejin' }




ref:
0.https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
1. https://miiingo.tistory.com/365
2. https://velog.io/@yunsungyang-omc/JS-map-reduce-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0
3. https://velog.io/@shin6403/Javascript-%EC%A3%BC%EC%9A%94-%EB%A9%94%EC%86%8C%EB%93%9Cruduce-%EB%B0%8F-%EC%98%88%EC%A0%9C

profile
가용한 시간은 한정적이고, 배울건 넘쳐난다.

0개의 댓글