깜놀하는 해므찌로

Typescript entries 사용 예시 본문

IT

Typescript entries 사용 예시

agnusdei1207 2023. 5. 8. 11:29
반응형
SMALL
export enum OrderStatus {
  WAITING_FOR_PRODUCTION = '제조 대기',
  PRODUCTION_CONFIRMED = '제조 승인',
  UNDER_PRODUCTION = '제조 중',
  PRODUCTION_COMPLETE = '제조 완료',
  UNDER_DELIVERY = '발송 중',
  DELIVERY_COMPLETE = '발송 완료',
  CUSTOMER_SERVICE_REQUESTED = 'CS 접수',
  CUSTOMER_SERVICE_COMPLETE = 'CS 완료',
}
    /**
     * 1. Object.keys() => 키값을 추출
     * 2. Object.values() => 값만 추출
     * 3. Object.entries() => 둘다 (튜플) [string, string]
     */

generateLogs(status: OrderStatus) { // 목데이터 생성
    const entries = Object.entries(OrderStatus);

    const index = entries.findIndex(([key, value]) => {
    	console.log(key, value);
      return value === status;
    });

    const logs = [];

    for (let i = 0; i < index; i++) {
      logs.push({
        status: entries[i][1],
        date: dayjs()
          .subtract(Math.abs(Math.random() * 100), 'day')
          .subtract(i * 15, 'minute')
          .toDate(),
      });
    }

    return logs;
  }
  
  // 다음 상태 가져오기
  getNextStatus(currentStatus?: OrderStatus): OrderStatus | undefined {
    const index = Object.entries(OrderStatus).findIndex(([key, value]) => {
      return value === currentStatus;
    });

    if (index === -1) {
      return;
    }

    return Object.entries(OrderStatus)[index + 1][1];
  }

1. entries  :  for...in와 같이 주어진 객체 자체의 enumerable 속성 [key, value] 쌍의 배열을 반환

 

 

 

2. 콘솔로그 결과

 

반응형
LIST