GASで配列の重複削除する方法

今回の記事ではGoogleAppsScriptで配列内の重複を削除する方法を解説します。

filterという関数を用いて重複を排除していきます。

目次

配列の重複除外プログラム

冒頭でも出てきましたが、filter関数を使って重複の削除を行います。
filterは覚えるととても応用が利くので、しっかり覚えておくと便利です。

それではまず、重複削除するサンプルプログラムです。

function myFunction(){
  var sample = ['りんご', 'もも', 'みかん', 'りんご'];
  sample = sample.filter(function(value, index, self){ return self.indexOf(value) === index;});
  Logger.log(sample);
}

>log
[りんご, もも, みかん]

りんごが重複していたので除外しました。

filter内部でのfunctionについてもう少し詳しく解説していきます。
function(value, index, self)としておりますが、変数名は任意なので、
特段これじゃなければ動かないというわけではありません。

イメージとしては、繰り返し処理が行われている感じです。
繰り返し処理をしている最中の配列の値が第一引数に、第二引数にはインデックスが入ってきます。
selfとしている部分に関してはsample配列が入っている状態です。

functionの内部でのreturnでTrueかFalseを判定しており、
filterではTrueとしたものだけを残すようになっています。
配列.indexOf()で最初に見つけた文字列のインデックス情報を返してくれます。

最初のりんごはインデックス0なのでそのままです
0 === 0 => True
最後のりんごはインデックス3となりますが、self.indexOf(りんご)として場合には0となりますので
0 === 3 => False

なので、最後のりんごは除外となっているのが上記のサンプルプログラムとなります。

あわせて読みたい
【GAS】文字列や配列検索に使うindexofについて徹底解説 今回の記事では、文字列や配列の検索時に使うindexOfについて、使い方から、事例を踏まえながら解説していきます。 【GASのindexOfメソッドとは】 indexOf関数とは文字...

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次