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