함수형코딩 315~326

빵동·2023년 4월 20일

함수형코딩 (완독)

목록 보기
19/29

함수형코딩 315~326 28일차

요약
체이닝 : 체인처럼 엮어 복합적인 계산을 표현한다.

비즈니스 로직 : 우수고객을 뽑은 다음 -> 가장 비싼 구매를 가져온다.

function biggestPurchasesBestCustomer(customers){
 	var bestCustomers = filter(customers, isGoodCustomer);
 	var biggestPurchases = map(bestCustomers, getBiggestPurchases);
 	return biggestPurchases;  
}

function isGoodCustomer(customer){
 return customer.purchaeses.length >=3;
}

function getBiggestPurchases(customer){
 return maxKey(customer.purchases, {total:0}, getPurchaseTotal)
}

function getPurchaseTotal(purchases){
return purchases.total
}  

체이닝의 목적은 코드의 가독성을 높이고, 중복을 줄이며, 비즈니스 로직을 간결하고 명확하게 표현하는 것이다.

function biggestPurchasesBestCustomer(customers) {
  return customers.filter(isGoodCustomer)
                  .map(getBiggestPurchases);
}

const isGoodCustomer = (customer) => customer.purchases.length >= 3;

const getBiggestPurchases = (customer) =>
  Object.values(customer.purchases)
        .reduce((max, purchase) => max.total < purchase.total ? purchase : max, { total: 0 });

발췌

메모

0개의 댓글