프로그래밍/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: [...]
// }