๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/Nomad Coders

[TIL] ๐Ÿ’ก Day 9 - ๋žœ๋ค์œผ๋กœ ๋ช…์–ธ, ๋ฐฐ๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

by vividmin 2022. 4. 16.
320x100

โœ” ์ด ํฌ์ŠคํŒ…์€ ๋…ธ๋งˆ๋“œ์ฝ”๋” - "๋ฐ”๋‹๋ผ JS๋กœ ํฌ๋กฌ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ๋“ค์œผ๋ฉด์„œ ๊นƒํ—ˆ๋ธŒ์— ๊ธฐ๋กํ•œ ํ•„๊ธฐ๋ฅผ ์˜ฎ๊ธด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

                              ๐ŸŽฒ ๋žœ๋ค์œผ๋กœ ๋ช…์–ธ, ๋ฐฐ๊ฒฝ ์„ค์ •ํ•˜๊ธฐ (JS์—์„œ ๋งŒ๋“  ์š”์†Œ Html์— ์ถ”๊ฐ€ํ•˜๊ธฐ)

 

 

๐ŸŒฑ Array์— ์ ‘๊ทผํ•˜๊ธฐ

๐Ÿ‘‰ ๋žœ๋ค์œผ๋กœ ๊ฐ’์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด Array์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

  • ์–ด๋–ป๊ฒŒ ์ฒซ ๋ฒˆ ์งธ array์•ˆ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    • ๋ช…์–ธ 10๊ฐœ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” quotes[ ]๊ฐ€ ์žˆ์„ ๋•Œ
      → console.log(quotes[0])์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
  • ๋ช…์–ธ์ด 10๊ฐœ์ด๋ฏ€๋กœ index๋Š” 0 - 9๊นŒ์ง€์˜ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค.
    • ์ฆ‰! 0 - 9๊นŒ์ง€์˜ ๊ฐ’์„ ๋žœ๋ค์œผ๋กœ ๋ฐ›์•„์˜ค๋ฉด ๋œ๋‹ค.
      ๐Ÿ‘‰ ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋žœ๋ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค!




๐ŸŒฑ Math.random( )

๐Ÿ‘‰ ์‚ฌ์šฉ ์‹œ 0 - 1 ์‚ฌ์ด์˜ ๊ฐ’์„ ๋žœ๋ค์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

  • ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ˆซ์ž๋Š” 0 - 9 ๊นŒ์ง€ ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊นŒ? ๐Ÿค”
    → ๐Ÿ’ก ๋žœ๋ค์œผ๋กœ ๋‚˜์˜จ ๊ฐ’์— * 10์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • 0 - 9 ๊นŒ์ง€์˜ ๊ฐ’์„ ๊ตฌํ–ˆ์ง€๋งŒ, ๋’ค์— ์†Œ์ˆ˜์ ์ด ์žˆ๋‹ค.
    → ๐Ÿ’ก ์˜ฌ๋ฆผ / ๋ฐ˜์˜ฌ๋ฆผ / ๋‚ด๋ฆผํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
    • Math.round( ) → ๋ฐ˜์˜ฌ๋ฆผ
    • Math.ceil( ) → ์˜ฌ๋ฆผ
    • Math.floor( ) → ๋‚ด๋ฆผ
  • ์ด ์ค‘์—์„œ floor( )๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.
  • ์˜ˆ์‹œ ์ฝ”๋“œ
      const TodaysQuote = quotes[Math.floor(Math.random() * 10)];
  • ๊ฐœ์„  ํ•„์š” ์‚ฌํ•ญ
    • X 10์„ ํ•˜๋ฉด ํ•ญ์ƒ array์— data๊ฐ€ 10๊ฐœ ์ธ ๊ฒƒ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.




๐ŸŒฑ length ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ‘‰ ๋ฐฐ์—ด.length = ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์ค€๋‹ค.

  • length๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด data๊ฐ€ 10๊ฐœ ์ธ ๊ฒƒ ์™ธ์— data๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด๋„ ๊ทธ ๊ธธ์ด๋งŒํผ์˜ ๋žœ๋ค ์ˆซ์ž๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฐ์—ด์ด 10๊ฐœ ์ผ ๋•Œ ๋žœ๋ค ์ˆซ์ž๋Š” 10์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
    → 0 - 1 ์‚ฌ์ด์˜ ์†Œ์ˆ˜ * 10์˜ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ!
    → ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์˜ index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์— (์ตœ์ข… ๊ธธ์ด -1)๊นŒ์ง€์˜ ๊ฐ’๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค.
  • ์˜ˆ์‹œ ์ฝ”๋“œ(๋ช…์–ธ)
      <!-- html --> 
      <div id="quote"> 
      <span></span> 
      <span></span>
    // js
    const quotes = [{
        quote: "Life is a mountain. Your goal is to find your path, not to reach the top.",
        author: "Maxime Lagacé",
      },
    ... // ์ƒ๋žต, ์ด 10๊ฐœ ๋„ฃ๊ธฐ
    ];

    const TodaysQuote = quotes[Math.floor(Math.random() * quotes.length)];

    quote.innerText = TodaysQuote.quote;
    author.innerText = TodaysQuote.author;




๐ŸŒฑ ๋žœ๋ค ๋ฐฐ๊ฒฝ ๋„ฃ๊ธฐ

๐Ÿ‘‰ ๋ช…์–ธ์„ ๋„ฃ์„ ๋•Œ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ• ์‚ฌ์šฉ

  • ํ”„๋กœ์ ํŠธ ํด๋”์— imgํด๋” ๋งŒ๋“ค๊ณ , ๋žœ๋ค์œผ๋กœ ์“ธ ์ด๋ฏธ์ง€ ๋„ฃ๊ธฐ
  • ์ด๋ฏธ์ง€ ์ด๋ฆ„์œผ๋กœ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ
  const images = ["0.jpg", "1.jpg", "2.jpg"];
  • ๋žœ๋ค ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
  const chosenImage = images[Math.floor(Math.random() * images.length)];
  • css ๋ฐฐ๊ฒฝ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด ๋‘๊ธฐ
  img {
      background-size: cover;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: -1;
      animation: fadeIn 0.5s linear;
  }
  • ๋žœ๋ค ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๋„๋ก js ์„ค์ •ํ•˜๊ธฐ
  const bgImage = document.createElement("img");
  bgImage.src = `./img/${chosenImage}`;
  • body์— img ์ถ”๊ฐ€ํ•˜๊ธฐ
  document.body.appendChild(bgImage);
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€