2
3

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文」いろいろ②forEach~3つの引数~

Last updated at Posted at 2020-10-05

つづき

「for文」いろいろ①for, for...of, for...in の続き

概要

forEach文ってのもあって、for...of的な使い方や、for...in的な使い方もできちゃう。もちろんforEach的な使い方もある。

まずは基本

配列.forEach( function(e) { 何かしらスクリプト } );
配列の要素を引数に関数が書けちゃう!何だか便利そう?

for...of的な使い方

function MarudeForOf() { 
   
  var array = [1, 2, 3, 4, 5]; 
   
  array.forEach( function(i) { 
    Logger.log(i); 
  }); 
   
  array.forEach( function(i) { 
    i = i * 5; 
    Logger.log(i); 
  }); 
   
}

配列の要素が順番にfunction(i)の引数に。
image.png
のfor_ofと全く同じ結果。forEachである意味?

for...in的な使い方

function MarudeForIn() { 
   
  var obj = [{name:'first',  num:1}, 
             {name:'second', num:2}, 
             {name:'third',  num:3}, 
             {name:'forth',  num:4}, 
             {name:'fifth',  num:5}] 
   
  obj.forEach( function(i) { 
    Logger.log(i.name, '', i.num, 'です'); 
  }); 
   
  obj.forEach( function(i) { 
    i = i.num * 5; 
    Logger.log(i); 
  }); 
   
}

引数.キー名称で値が得られる。
image.png
2つ目の繰り返しでは、numの値に5倍している。

forEach的な使い方

なにやらforEachには引数が3つあるらしいので、確かめてみた。

function TestForEach() { 
   
  var array = [1, 2, 3, 4, 5]; 
   
  array.forEach( function(i, j, k) { 
     
    Logger.log("配列", k, "の", j, "番目の要素は", i);
     
  }); 
   
}

配列「引数3」の「引数2」番目の要素は「引数1」としてログを出したところ。
image.png
1つ目の引数は配列の要素、2つ目はインデックス、3つ目は配列そのものとなっている。

この仕組みを使って、なんとかforEach的なんじゃないかなって使い方を試したのがコチラ。

function KorezoForEach() { 
   
  var obj = ['家康','秀忠','家光','家綱','綱吉'] 
   
  obj.forEach( function(name,generation,family) { 
     
    family[generation] = generation + 1 + '代目 徳川' + name; 
     
  }); 
   
  Logger.log(obj); 
   
}

image.png
徳川ファミリーの名前が入った配列の、全ての要素に「〇代目 徳川」を追加することができた。

今はこんなだけど、覚えておけばいつか使うこともあるのかな(笑)

おしまい

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?