【Google Apps Script(GAS)】配列内を検索する(indexOf、lastIndexOf)

オンラインGAS講座 開講中!
オンライン無料体験あり!
最短4週間でGASをマスターできる
Google Apps Scriptコース』開講中!

以前の記事では少々軽く流してしまいましたが、Google Apps Scriptでは、配列内を先頭から検索したり、末尾から検索したりする事のできるスクリプトがありますので、今回はそちらをご紹介します。

※以前の記事はこちらをご覧ください。

配列と処理速度

配列の先頭から検索する、indexOf

配列内を先頭から検索するには、下記スクリプトを使用します。

[配列].indexOf(検索値)

このスクリプトは配列の先頭から末尾に向かって検索値を検索し、検索値が見つかれば、最初に見つけた配列要素のインデックス番号を返し、検索値が見つかれなければ-1を返します。

下記のサンプル1では、

var ary = [‘いぬ’,’さる’,’きじ’,’いぬ’,’さる’,’きじ’];

という配列内を、

ary.indexOf(‘いぬ’)

で「いぬ」という文字列を配列の先頭から検索します。

今回の配列では「いぬ」という文字列は一番最初にありますので、メッセージボックスには0と表示されます。

また、

ary.indexOf(‘ねこ’)

で「ねこ」という文字列を配列の先頭から検索しても存在していませんので、メッセージボックスには-1と表示されます。

・サンプル1

function index() {

var ary = [‘いぬ’,’さる’,’きじ’,’いぬ’,’さる’,’きじ’];

Browser.msgBox(ary.indexOf(‘いぬ’));
Browser.msgBox(ary.indexOf(‘ねこ’));

}

配列の末尾から検索する、lastIndexOf

配列内を末尾から検索するには、下記スクリプトを使用します。

[配列].lastIndexOf(検索値)

このスクリプトは配列の末尾から先頭に向かって検索値を検索し、検索値が見つかれば、最初に見つけた配列要素のインデックス番号を返し、検索値が見つかれなければ-1を返します。

下記のサンプル1では、

var ary = [‘いぬ’,’さる’,’きじ’,’いぬ’,’さる’,’きじ’];

という配列内を、

ary.lastIndexOf(‘いぬ’)

で「いぬ」という文字列を配列の末尾から検索します。

今回の配列では「いぬ」という文字列は末尾から3番目にありますが、先頭から数えると4番目にありますので、メッセージボックスには3と表示されます。

また、

ary.indexOf(‘ねこ’)

で「ねこ」という文字列を配列の先頭から検索しても存在していませんので、メッセージボックスには-1と表示されます。

・サンプル2

function lastindex() {

var ary = [‘いぬ’,’さる’,’きじ’,’いぬ’,’さる’,’きじ’];

Browser.msgBox(ary.lastIndexOf(‘いぬ’));
Browser.msgBox(ary.lastIndexOf(‘ねこ’));

}

【少し応用】配列内の検索結果に応じて処理を分ける

下記のサンプル3では、検索値が見つかれなければ-1を返ってくる事を利用し、

if ( ary.indexOf(str) == -1 ){

} else {

}

で検索値が存在する場合としない場合でメッセージボックスに表示される文字列を分岐しています。
この方法はフォルダの検索など、様々な場面で活用できるため非常に便利です。

・サンプル3

function nashi() {

var str = ‘ねこ’;
var ary = [‘いぬ’,’さる’,’きじ’,’いぬ’,’さる’,’きじ’];

if ( ary.indexOf(str) == -1 ){

Browser.msgBox(str + ‘は存在しません’);

} else {

Browser.msgBox(str + ‘は存在します’);

}
}

シェアする

  • このエントリーをはてなブックマークに追加

フォローする