【GAS】「for문」 여러가지①for, for...of, for...in

개요



for문이라고 하면 for(i=1; i<=10; i++){ 같다고 생각했지만, 아무래도 종류가 있는 것 같다···.

「for문」 「for...of문」 「for...in문」 「forEach문」이라고 정리했는데, 길어졌으므로 ①②로 분할.

그냥 for 문



평소에 익숙한 녀석으로부터.
function minaretaYatsu() { 

  for(var i=1; i<=5; i++){ 
    Logger.log(i); 
  } 

  for(var j=1; j<=5; j++){ 
    i = j * 5; 
    Logger.log(i); 
  } 

}
for(var i=1; i<=5; i++){ 즉, i=1에서 i가 5 이하인 동안 i에 1씩 더하면서 반복한다. 결과는 이대로.

1번째의 반복으로, 1~5까지를 출력. 2번째에서는, 각각을 5배로 출력하고 있다.

나중에 나오는 for 문과 달리 반복 속에서 조건에 간섭할 수 있다.
예를 들어, 두 번째 반복에서 i=j*5 그 밖에도, break나 continue, return등 매우 편리.

※이 후에 나오는 다른 for문은 중단할 수 없다.
역시 for 문, 거기에 갈라진다! 동경된다!

for...of 문



예로서 1~5가 들어간 배열을 준비.
function forOf() { 

  var array = [1, 2, 3, 4, 5]; 

  for(var i of array){     
    Logger.log(i);     
  } 

  for(var j of array){     
    j = j * 5;     
    Logger.log(j);     
  } 

}

배열의 요소를 순서대로 임의의 변수에 부여한다.

이 경우 결과만 보면 단지 for문과 함께하지만 요소의 수만큼 반복하기 때문에 종료 조건을 신경쓰지 않아도 좋다.

for...in 문



for ... of 문과 같은 배열에 사용하면 ...
function forIn() { 

  var array = [1, 2, 3, 4, 5]; 

  for(var i in array){ 
    Logger.log(i); 
  } 

}


각 요소의 인덱스가・・・ 뭔가 용도가 있는 것일까? 잘 모르겠습니다.

그렇지 않고, 연상 배열에 사용해야만 for...in문!
function forIn() { 

  var obj = {first : 1, 
             second: 2, 
             third : 3, 
             forth : 4, 
             fifth : 5} 

  for(var key in obj){ 
    Logger.log(key); 
    Logger.log(obj[key]); 
  } 

  for(var i in obj){   
    i = obj[i] * 5; 
    Logger.log(i)    
  } 

}

무려 연상 배열의 내용을 얻을 수 있다.

임의의 변수에 「키 명칭」, j=j*5 로 「값」이, 각각 주어진다.
두 번째 반복은 얻어진 값을 5배로 한다.

계속



「for문」 여러가지②forEach~3개의 인수~ ...

좋은 웹페이지 즐겨찾기