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)