LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Thursday, January 17, 2019

2次元配列で指定した値が何番目の配列にあるか知りたい


1次元配列ならindexOfで指定した値が配列の何番目にあるか知りたいのようにできました

2次元配列の場合はどうしたらいいのかちょっと迷いました。

例えば
var array = [[5,4], [12,20], [8,5]]
の中で
0番目が
12
である配列が何番目にあるかを知りたい

もっと簡単な方法がありそうな気もしますが、以下のコードで目的を達成できました。


コード.gs
function getIndex2d() {
  var index;
  var target = 12;
  var array = [[5,4], [12,20], [8,5]];
  for(var i = 0; i < array.length; i++) {
    if(array[i][0] === target) {
      index = i;
      break;
    }
  }
  Logger.log(index);
}

意訳
この機能がやること
見つかったindexを入れる入れ物を用意して
見つけたい値を決めて
探したい対象の2次元配列を用意して
配列の数だけ繰り返す
ひとつずつ要素を見て0番目がtargetに一致したら
indexに繰り返した回数を入れて
繰り返しから抜ける


indexをログに出す



0番目:[5,4]
1番目:[12,20]
2番目:[8,5]

実行結果

ちょっとややこしい言い回しになりますが
var array = [[5,4], [12,20], [8,5]]
内の各要素の0番目が12であるのは、1番目の配列なので1が返ってきます。




Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...