【GAS】filterメソッドの使い方・活用例
Google Apps Script(GAS)で配列の操作を行う際、特定の条件に合致する要素のみを選択的に抽出したい場面がよくあります。このような場合に非常に便利なのが、filterメソッド(Array.filter)です。
この記事では、GASにおけるfilterメソッドを、基本的な使い方と発展的な活用例に分けてご紹介しました。
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メソッド以外の配列の要素の除外処理は下記の記事で紹介しています。
filterメソッド以外の反復メソッドはこちらの記事でご紹介しています。