reduce의 활용

Siwoo Pak·2021년 7월 12일
0

Javascript

목록 보기
17/34

1. reduce의 기본형식

arr.reduce(callback( accumulator, currentValue, [, index[, array]] )[, initialValue])

2. 객체를 배열로 바꿔서 순서화시키고 객체로

const sortedCupDispenserStatus = cupDipenserStatus.map(cupDispenser =>
    Object.keys(cupDispenser)
      .sort()
      .reduce((obj, key) => ((obj[key] = cupDispenser[key]), obj), {})
  );

3. 배열의 길이 구하기

const arr = ['a','b','c'];
arr.reduce((acc,cur) => acc+1,0);

4. 배열 내의 요소(객체)의 속성값의 합 구하기

const drinks = [
  {menu: 'americano', price:1800},
  {menu: 'cafeLatte', price: 2200},
  {menu: 'mintTea', price: 1900}
];
drinks.reduce((acc,cur) => acc+cur.price,0);

5. map처럼 써보기

drinks.reduce((acc,cur) => [...acc, cur.menu],[]);

6. dictionary처럼 사용해보기

const drinks = [
  {menu: 'americano', price:1800},
  {menu: 'cafeLatte', price: 2200},
  {menu: 'mintTea', price: 1900}
];
const result = drinks.reduce((acc,cur) => 
{ return {...acc, [cur.id] : cur}},{})
//출력
{
  1: { id: 1, menu: 'americano', price: 1800 },
  2: { id: 2, menu: 'cafeLatte', price: 2200 },
  3: { id: 3, menu: 'mintTea', price: 1900 }
}

7. 제일 비싼 메뉴 찾기

const drinks = [
  {id : '1', menu : 'americano', price:1800},
  {id : '2', menu : 'cafeLatte', price: 2200},
  {id : '3', menu : 'mintTea', price : 1900}]


drinks.reduce((acc,drink)=>{
	if(drink.price>acc) {
    	return drink.price}
		return acc
	},0)

8. 제일 싼 메뉴 찾기

const result = drinks.reduce((acc,cur) => {
  if(acc===null || cur.price < acc) {
    return cur.menu
  }
  return acc
},null)
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글