주행속도 마다 경고 메세지를 띄워야 하는 상황이 있다.
코드가 반복되고 굳이 switch문, if else문 말고는 조건을 처리하는 방법은 없는건가??라는 생각이 들었고 유튜브에서 매핑관계를 하나 만들고 비즈니스 로직을 담당하는 함수를 만들어서 분기(?)처리를 하는 영상을 봤던 기억이 났다.
const speedWarnings = {
0.9: "속도가 너무 빠릅니다.",
1.0: "속도가 너무 빠릅니다.",
1.1: "너무 높은 속도는 사고를 유발할 수 있습니다.\n속도가 너무 빠릅니다.",
1.2: "너무 높은 속도는 사고를 유발할 수 있습니다.\n속도가 너무 빠릅니다.",
1.3: "너무 높은 속도는 사고를 유발할 수 있습니다.\n속도가 너무 빠릅니다.",
1.4: "너무 높은 속도는 사고를 유발할 수 있습니다.\n속도가 너무 빠릅니다.",
1.5: "너무 높은 속도는 사고를 유발할 수 있습니다.\n속도가 너무 빠릅니다.",
};
const message = (speed) => {
return speedWarnings[speed];
};
setAlertDialogProps({
open: true,
title: "주행 속도 안내",
content: message(event.target.value), //여기 부분
type: "information",
confirmButtonProps: {
onClick: () => {
handleAlertDialogClose();
playButtonClickSound();
},
},
});
const speedWarnings = {
change: "속도가 변경되었습니다.",
high: "속도가 너무 빠릅니다.",
accident: "너무 높은 속도는 사고를 유발할 수 있습니다.",
};
const message = (speed) => {
if (speed < 0.8) return speedWarnings.change;
if (speed < 1.0) return speedWarnings.high;
if (speed <= 1.5) return speedWarnings.accident;
};