【GAS】filterメソッドの使い方・活用例
Google Apps Script(GAS)で配列の操作を行う際、特定の条件に合致する要素のみを選択的に抽出したい場面がよくあります。このような場合に非常に便利なのが、filterメソッド(Array.filter)です。この記事では、GASにおけるfilterメソッドを、基本的な使い方と発展的な活用例に分けてご紹介しました。
目次- 1. filterメソッドとは
- 2. filterメソッドの基本的な使用法
- 3. filterメソッドの発展的な活用例
- 3.1. 特定の文字列が含まれる要素を抽出する
- 4. 複数の条件でフィルタリングする
- 5. まとめ
filterメソッドとは
Array.filter(function(value){ return valueのテスト関数});
filterメソッドは、配列の各要素に対してテスト関数を実行し、その関数がtrueを返した要素のみからなる新しい配列を生成します。これにより、配列から特定の条件に合致する要素のみを簡単に抽出できます。
filterメソッドの基本的な使用法
最も基本的なfilterメソッドの使用例をご紹介します。偶数のみの要素を抽出して新たな配列を生成しています。
let numbers = [1, 2, 3, 4, 5, 6]; let evenNumbers = numbers.filter(function(number) { return number % 2 === 0; }); console.log(evenNumbers); // [2, 4, 6]配列の各要素(number)を2で除算を実行し、あまりが0となる要素のみをTrueとして返しています。この除算を実行している関数がTrueとなる要素のみを新しい配列として返しているので、偶数のみをフィルタしている関数を生成していることになります。
filterメソッドの発展的な活用例
特定の文字列が含まれる要素を抽出するこの例では、「a」を含む果物のみを抽出しています。
let fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']; let fruitsWithA = fruits.filter(fruit => fruit.indexOf('a') > -1); console.log(fruitsWithA); // ['apple', 'banana', 'date']複数の条件でフィルタリングする
複数の条件を組み合わせてフィルタリングする例を以下に示します。この例では、30歳未満かつ名前が「A」で始まる人物を抽出しています。
let people = [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'Charlie', age: 28 }, { name: 'Diana', age: 22 } ]; let youngPeople = people.filter(person => person.age < 30 && person.name.startsWith('A')); console.log(youngPeople); // [{ name: 'Alice', age: 25 }]まとめ
GASにおけるfilterメソッドの使い方を、基本的な使い方と少し発展的な活用例をご紹介しました。
filterメソッド以外の配列の要素の除外処理は下記の記事で紹介しています。
【GAS】配列から要素を削除する方法まとめ(pop / shift / splice / filter)
Google Apps Script(GAS)で配列要素の削除を行うには、popメソッド(最後の要素を削除)、shiftメソ ...
https://tetsuooo.net/gas/3434/
filterメソッド以外の反復メソッドはこちらの記事でご紹介しています。
【GAS】配列の反復メソッドの使い方
配列の反復処理にはいくつかの便利なメソッドが用意されており、データの処理や分析を行う際に大いに役 ...
https://tetsuooo.net/gas/4220/
こちらもおすすめ【GAS】配列に使えるメソッドまとめ
GASではプログラムを効率よく記述するために配列操作が大きな役割を果たします。この記事では配列(Arr ...
https://tetsuooo.net/gas/2339/
【GAS】配列の宣言・初期化・頻出メソッド
Google Apps Script(GAS)では、効率の良いスクリプトを書くために配列がとても重要な役割を果たしま ...
https://tetsuooo.net/gas/715/