JS

[JS] Math.random()๊ณผ Object.Keys()๋กœ ์ ์‹ฌ๋ฉ”๋‰ด ๋žœ๋ค ์„ ํƒํ•˜๊ธฐ

hyonie 2024. 12. 22. 13:05

  ๋ฌด์ž‘์œ„๋กœ ์ ์‹ฌ ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”? Math.random() ํ•จ์ˆ˜์™€ Object.keys() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ ์‹ฌ ๋ฉ”๋‰ด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 


๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋žœ๋ค ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

๋จผ์ €, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ณ ๋ คํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ‚ค๋Š” ์Œ์‹์œ ํ˜•์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ ๊ฐ’์€ ํ•ด๋‹น์Œ์‹์˜ ์ด๋ฆ„๊ณผ ์ด๋ฏธ์ง€URL ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

const lunchChoice = {
    hansik: {name: "๋น„๋น”๋ฐฅ", image: "https://kormedi.com/wp-content/uploads/2024/09/gettyimages-a11354394.jpg"},
    chineseFood: {name: "์งœ์žฅ๋ฉด", image: "https://cdn.kormedi.com/wp-content/uploads/2021/10/r658x041.jpg"},
    westernFood: {name: "ํŒŒ์Šคํƒ€", image: "https://cdn.imweb.me/upload/S20230403a6b69b7e354a4/c1e4ca23c29de.jpg"}
};

 

 


1. ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ดํ™”ํ•˜๊ธฐ

 

์ด์ œ Object.keys() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ lunchChoice ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

const keys = Object.keys(lunchChoice);

 

 


 

2. Math.random ํ•จ์ˆ˜๋กœ ๋žœ๋คํ•œ ์ˆซ์ž ๋ฐ›๊ธฐ

keys ๋ฐฐ์—ด์—์„œ ๋žœ๋คํ•œ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ• ๋•Œ  Math.random() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” 0 ์ด์ƒ 1๋ฏธ๋งŒ์˜ ๋žœ๋คํ•œ ์†Œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด ๊ฐ’์„ keys.length์™€ ๊ณฑํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์–ป์Šต๋‹ˆ๋‹ค. ์ดํ›„ Math.floor() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ˆ˜์  ์•„๋ž˜๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ, ๋ฐฐ์—ด์˜ ์œ ํšจํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ตœ์ข…์ ์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐฐ์—ด ๋‚ด์˜ ๋žœ๋คํ•œ ์š”์†Œ์— ์ ‘๊ทผํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

const randomIndex = Math.floor(Math.random() * keys.length);
const randomLunch = lunchChoice[keys[randomIndex]];

 

 

์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด lunchChoice ๊ฐ์ฒด ๋‚ด์˜ ๋žœ๋คํ•œ ์ ์‹ฌ ๋ฉ”๋‰ด๋ฅผ randomLunch ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ์ฒด์˜ name๊ณผ image ์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

console.log(`์˜ค๋Š˜์˜ ์ ์‹ฌ ์ถ”์ฒœ ๋ฉ”๋‰ด๋Š” ${randomLunch.name}์ž…๋‹ˆ๋‹ค! 
๋ฉ”๋‰ด์˜ ์‚ฌ์ง„์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”: ${randomLunch.image}`);

 

 

์ด ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ ์‹ฌ ๋ฉ”๋‰ด๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.