[JavaScript] 생활코딩 19~23 _ 배열, 반복문과 그 활용

    SMALL

    안녕하세요~ 보라해바라기입니다.

     

    저번 시간에 주/야간모드를 구현해보았는데요!

     

    야간모드를 실행시켰을 때, 링크 색이 어두워 잘 안보이는 불상사가 생기더라고요...

     

    물론 링크 색 변경을 통해 해결할 수 있지만!!

     

    오늘은 배열과 반복문을 사용하여 이 문제를 해결해보려 합니다 ㅎㅎ

     

    오늘도 저와 같이 렛츠기릿 하실까요~?

     

     


     

     

    1.  배열

    배열이라는 말은 일상생활에서 많이 들어보셨을텐데요!

     

    그렇다면 JS에서 말하는 배열이란 무엇일까요?

     

    배열은 데이터가 많아짐에 따라, 데이터 중에 서로 연관된 데이터를 잘 정리정돈해서 담아두는 일종의 수납상자랍니다~

     

    데이터로, 책장배열이라고 생각해볼까요?

     

    여러 종류의 책(인문학, 사회과학, 의학, 종교학 등등)들은 책장의 각 공간에 분리되어서 정리됩니다.

     

    책장

    이렇게 말이죠! 

     

    연관된 것끼리 묶인 데이터는 코드를 짤 때, 더 효율적이겠죠?

     

    var greeting = ["hello", "bye"]

     

    예시를 살펴보면, 배열은 대괄호를 사용하여 나타냅니다.

     

    대괄호 안에 여러 값을 기술할 수 있죠!

     

    값과 값 사이는 콤마( , )로 구분하게 됩니다 ㅎㅎ

     

    document.write(greeting[0]);

    document.write(greeting[1]); 

     

    배열에서 값을 끌어다 사용할 때, 0번째부터 시작하게 됩니다.

     

    그래서 hello는 0번째, bye는 1번째가 되는 것이죠.

     

    즉, hello는 greeting[0]을 통해, bye는 greeting[1]을 통해 값을 끌어올 수 있답니다!

     

    greeting.push("how are you?"); 
    greeting.push("Nice to meet you."); 

     

    배열에 원소를 추가하고 싶다면 배열 자체에 추가하는 것도 가능하겠지만

     

    변수이름.push를 통해서도 가능하답니다~

     

    document.write(greeting.length);

     

    length를 이용하면 배열의 원소가 몇 개인지도 알 수 있고요!

        

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>
      </head>
      <body>
        <h1>Array</h1>
        <h2>Syntax</h2>
          <script>
            var greeting = ["hello", "bye"];
            /*대괄호 사용. 대괄호 안에 여러 값 기술 가능*/
            /*값과 값 사이는 콤마로 구분*/
          </script>
        <h2>Get</h2>
          <script>
            document.write(greeting[0]); /*index 0*/
            /* 첫번쨰 자리는 0번째임. */
            document.write(greeting[1]); /*index 1*/
          </script>
        <h2>Add</h2>
          <script>
            greeting.push("how are you?");
            greeting.push("Nice to meet you.");
          </script>
        <h2>Count</h2>
          <script>
            document.write(greeting.length);
          </script>
      </body>
    </html>

     

     

    2.  반복문

    반복문은 말 그대로 어떤 조건에 만족하면 계속 반복을 하겠다는 이야기랍니다!

     

    var i = 0;

    while (i < 3) {
         document.write('<li>2</li>');
         document.write('<li>3</li>');

          i = i+1 ;

         }
           

    이번 예시에서는 while을 사용하였는데요?

     

    위 예시를 해석해보자면 i는 0부터 시작해서 i가 3보다 작을 때까지 (3이 되면 실행 X)

     

    목록 '2'와 '3'을 반복해서 출력하고 반복이 한 번 끝날 때 마다 i를 1씩 증가시켜라!는 의미가 됩니다.

     

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>
      </head>
      <body>
        <h1>Loop</h1>
        <ul>
          <script>
            document.write('<li>1</li>');
            var i = 0;
            while (i < 3) {
              document.write('<li>2</li>');
              document.write('<li>3</li>');
              i = i+1 ;
            }
            document.write('<li>4</li>');
          </script>
        </ul>
      </body>
    </html>

     

    3. 배열과 반복문

    앞서 우리가 배열과 반복문을 살펴보았죠?!

     

    배열과 반복문의 케미스트리는.. 이루 말할 수 없을 정도로 엄청나답니다!

     

    배열은 순서대로 서로 연관된 데이터를 잘 정리정돈한다면

     

    반복문은 순서대로 배열에 담긴 데이터를 하나씩 꺼내서 조건에 맞게 자동화된 처리를 하기 때문이죠~

     

    아래 예시에서 배열과 반복문을 활용해 정보를 나타낼 수 있음을 보여줍니다!

     

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>
      </head>
      <body>
        <h1>Loop & Array</h1>
        <script>
          var color = ['Red', 'Orange', 'Yellow', 'Green', 'Blue'];
        </script>
        <h2>Color</h2>
          <ul>
            <script>
              var i = 0;
              while (i < color.length) {
                document.write('<li>'+color[i]+'</li>');
                i = i + 1;
              }
            </script>
          </ul>
          <!-- 배열: 순서대로 서로 연관된 데이터를 잘 정리 정돈
          반복문: 순서대로 배열에 담긴 데이터를 하나씩 꺼내서 자동화된 처리를 할 수 있는 문법-->
      </body>
    </html>

     

    4.  배열과 반복문의 활용

    드디어! 이 글의 서두에서 구현하고자 했던 기능을 배열과 반복문으로 만들어 볼 것이랍니다!  

     

    어떤 방식으로 구현할 것인가?

     

     var alist = document.querySelectorAll('a')
          var i = 0
          while(i < alist.length){ 
            console.log(alist[i]); 
            alist[i].style.color = 'violet'; 
            i = i + 1; 

     

    야간모드의 코드 중 일부인데요!

     

    일단 alist라고 하는 변수에 a의 모든 태그를 불러오는 선택자를 사용할 것이랍니다.

     

    반복문을 통해 각 배열의 요소의 갯수만큼 색을 바꿔주고 i는 1씩 증가하게 됩니다.

     

    이 때, alist의 색은 야간일 때 violet, 주간일 때 purple로 지정했어요!

     

    <input type="button" value="night" onclick=" 
        var target = document.querySelector('body'); 
        if(this.value === 'night'){ 
          target.style.backgroundColor = 'black'; 
          target.style.color = 'ivory'; 
          this.value = 'day'; 
    
          var alist = document.querySelectorAll('a'); 
          var i = 0; 
          while(i < alist.length){ 
            console.log(alist[i]); 
            alist[i].style.color = 'violet'; 
            i = i + 1; 
            } 
        } else { 
          target.style.backgroundColor = 'ivory'; 
          target.style.color = 'black'; 
          this.value = 'night'; 
    
          var alist = document.querySelectorAll('a'); 
          var i = 0; 
          while(i < alist.length){ 
            console.log(alist[i]); 
            alist[i].style.color = 'purple'; 
            i = i + 1; 
            } 
        } 
      ">

    야간모드
    주간모드

    짜잔!! 그럴싸하게 구현되었죠?


    제가 예전에 배웠던 C언어에도 배열과 반복문에 관한 내용이 있어서

     

    이번 주제는 더 재밌고 익숙했던 것 같아요!

     

    같은 개념의 배열과 반복문이었지만 웹페이지의 편리함을 위해 쓰인다는 점이 좋았어요 ㅎㅎ

     

    C언어와 달리 배열과 반복문이 실용적으로 쓰임을 보여주어서 기뻤답니다!!

    오늘은 여기서 글을 마무리 하겠습니다. 감사합니다^_^

    728x90

    댓글