Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GAS】「for文」いろいろ①for, for...of, for...in

Last updated at Posted at 2020-10-03

概要

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 ずつ足しながら繰り返す。結果はこの通り。
image.png
1つ目の繰り返しで、1~5までを出力。2つ目では、それぞれを5倍して出力している。

後に出てくるfor文と違い、繰り返しの中で条件に干渉できる。
例えば、2つ目の繰り返しで、i=j*5j=j*5 にすると、1周目で j が 5 になるので2周目に突入できない。他にも、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);     
  } 
   
}

配列の要素を順番に、任意の変数へ与えてくれる。
image.png
この場合、結果だけ見ればただのfor文と一緒だけど、要素の数だけ繰り返すため終了条件を気にしなくて良いのが素敵。

for...in文

for...of文の時と同じ配列に使ってみると・・・

function forIn() { 
   
  var array = [1, 2, 3, 4, 5]; 
   
  for(var i in array){ 
    Logger.log(i); 
  } 
   
}

image.png
各要素のインデックスが・・・何か使い道があるんだろうか?良く分からん。

そうではなくて、連想配列に使ってこその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)    
  } 
     
}

なんと、連想配列の中身が得られる。
image.png
任意の変数に「キー名称」、配列名[変数]で「値」が、それぞれ与えられる。
2つ目の繰り返しは、得られた値を5倍している。

つづく

「for文」いろいろ②forEach~3つの引数~ へ続く...

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?