프로그래밍/TypeScript
[TS] Map<K, V>로 Python 딕셔너리처럼 객체 저장하고 순회하기
L.Joey
2025. 5. 26. 03:01
사용할 제네릭(generic) 클래스의 기본 구조
Map<k,v>
type RoutineExerciseItemDto = {
exerciseName: string;
bodyPart: string;
};
type RoutineData = {
id: number;
name: string;
routine: RoutineExerciseItemDto[];
};
const expampleMap = new Map<number, RoutineData>();
routineMap.set(1, {
id: 101,
name: "Chest Day",
routine: [/* RoutineExerciseItemDto 객체들 */]
});
-> 1 이 key 가되고 {} 가 value 가 된다.
위의 exampleMap을 이용하여 파이썬의 딕션너리와 비슷하게 만들어보기
const routines = [
{
id: 101,
name: "Chest Day",
exercises: [
{ exerciseName: "Bench Press", bodyPart: "Chest" },
{ exerciseName: "Push-up", bodyPart: "Chest" },
],
},
{
id: 102,
name: "Leg Day",
exercises: [
{ exerciseName: "Squat", bodyPart: "Legs" },
{ exerciseName: "Lunge", bodyPart: "Legs" },
],
},
{
id: 103,
name: "Back Day",
exercises: [
{ exerciseName: "Deadlift", bodyPart: "Back" },
{ exerciseName: "Pull-up", bodyPart: "Back" },
],
}
];
// 루프를 이용한 Map 초기화
routines.forEach((routine, index) => {
routineMap.set(index + 1, {
id: routine.id,
name: routine.name,
stationary: routine.exercises,
});
});
각 key 에 해당하는 값 불러오기
routineMap.get(1);
// 반환 값
// {
// id: 101,
// name: "Chest Day",
// stationary: [...]
// }