ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 반복문정리
    JavaScript/Basic 2022. 10. 5. 09:32

    JavaScript에서 사용할 수 있는 반복문의 형태

     

    1. while 문

    2. do / while 문

    3. for 문

    4. for / in 문

    5. for / of 문

    6. for each

     

    while문

    while (표현식) {
    
        표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
    
    }
    
    
    
    ex) 
    var i = 1;
    while(i<10){  // i가 10이하일때만 반복
    	console.log(i);
    }

    do while문

    do { 
        표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
    }
    while (조건문); 
    //  조건문을 판단하기 전에 do 블록의 코드를 먼저 실행
    
    ex) 
    let i = 1; 
    do {
     console.log(i);
     i++;
    }  
    while(i<=5);

    for문

    for (초기식; 표현식; 증감식) { 
        표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문; 
    }
    
    ex) 
    
    for(var i=1; i< 10; i++){
    	console.log(i) 
    }

    for / In문  

    for / in 문은 일반적인 for 문과는 전혀 다른 형태의 반복문
    for / in 문은 해당 객체의 모든 열거할 수 있는 프로퍼티(enumerable properties)를 순회하도록 한다
    
    for (변수 in 객체) { 
        객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문; 
    }
    
    ex)  
    
    let brands = ['Google', 'Kakao', 'Naver', 'Kakao', "CoffeeBean","Starbucks"];   
    for(let idx in brands){
        console.log()
    }

    for / of 문

    for / of 문은 반복할 수 있는 객체(iterable objects)를 순회할 수 있도록 해주는 반복문
    
    for (변수 of 객체) {
    
        객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
    
    }  
    
    ex)  
    
    let brands = ['Google', 'Kakao', 'Naver', 'Kakao', "CoffeeBean","Starbucks"];  
    for(let element of brands){
        console.log(element);
    }
    
    
    ex) 
    
    // 투표 결과 리스트
    let votes = [
      '이재식', '이재식', '이규하', '이규하', '이규하',
      '이재식', '이재식', '이규하', '이규하', '이재식',
      '이규하', '이규하', '이규하', '이규하', '이재식',
      '이재식', '이규하', '이재식', '이재식', '이재식',
      '이재식', '이재식', '이규하', '이규하', '이규하',
      '이규하', '이규하', '이재식', '이규하', '이규하',
      '이규하', '이규하', '이재식', '이규하', '이규하',
      '이규하', '이재식', '이재식', '이재식', '이규하',
    ];
    
    // 풀이 1
    let voteCounter = {};  
    
    for (let name of votes) {
      // 코드를 작성하세요.
        if(name in voteCounter === false) {   // if(!(name in voteCounter)) {}
            voteCounter[name] = 1
        }else{
          voteCounter[name] += 1
        }
        
    
    
    }
    
    // 풀이2
    let voteCounter = {};  
    
    for (let name of votes) {
      // 코드를 작성하세요.
      if (name in voteCounter) {
        voteCounter[name]+= 1;
      } else {
        voteCounter[name] = 1;
      }
    }
    
    
    // 후보별 득표수 출력
    console.log(voteCounter); // { '이재식': 17, '이규하': 23 }

     

    forEach

    forEach 메서드도 배열을 순회하기 위해 사용되지만, 기본적인 for 반복문과는 다른 방식으로 함수를 사용합니다.

    forEach 메서드는 다음 매개변수(parameter)와 함께 배열의 각 요소에 적용하게 될 콜백 함수(callback function)를 전달합니다.

    Current Value (명명된 매개변수) - 처리할 현재 요소
    Index (선택적 매개변수) - 처리할 현재 요소의 인덱스
    Array (선택적 매개변수) - forEach 메서드를 호출한 배열

    =====================================
    - 우선 forEach 메서드를 사용해 배열을 순회하려면 콜백 함수 또는 익명 함수가 필요

    - 콜백 함수는 각 요소에 대해 실행되며, 배열의 요소를 나타내는 매개변수를 반드시 하나 이상 사용해야 합니다.

    기본 syntax
    numbers.forEach(function(){
    // code  
    });
    ==================

    // 함수선언
    numbers.forEach(function(number){
        console.log(number);
    });

    // 화살표함수
    numbers.forEach(number => console.log(number));


    ==============================


    선택적 매개변수
    인덱스(Index)
    이어서 선택적 매개변수에 대해 알아봅시다.

    첫 번째 선택적 매개변수는 각 요소의 순서를 나타내는 인덱스입니다.

    즉 두 개의 매개변수를 활용하여 메서드를 사용하면 두 번째 매개변수를 통해 요소의 인덱스를 확인

    const numbers = [1, 2, 3, 4, 5];

    numbers.forEach((number, index, array) =>{
        console.log('index ' + index + ' value: ' + number, '원본 array ' + array); 
    });

    index 0 value: 1 원본 array 1,2,3,4,5
    index 1 value: 2 원본 array 1,2,3,4,5
    index 2 value: 3 원본 array 1,2,3,4,5        
    index 3 value: 4 원본 array 1,2,3,4,5        
    index 4 value: 5 원본 array 1,2,3,4,5   
    ==============================
    ==============================

    'JavaScript > Basic' 카테고리의 다른 글

    스코프(Scope)  (0) 2022.12.03
    자바스크립트(JavaScript)이란?!  (0) 2022.11.22
    setTimeout과 setInterval을 이용한 호출 스케줄링  (0) 2022.11.18
    객체(Obejct) & 메서드(Method)  (0) 2022.09.15
    ArrowFunction  (0) 2022.09.02

    댓글

Designed by Tistory.