LANG SELRCT

コードを書く場所についてはこちら

2019年1月17日木曜日

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が返ってきます。