【GAS】配列内の空白を削除する
配列を扱う際、特にデータの前処理や整理を行う場合に、空の要素を削除することはよくあります。この記事ではGoogle Apps Script(GAS)で配列内の空白(または空文字列)を削除する方法を解説します。
配列内の空白を削除する方法
配列から空白や空文字列を削除する主な方法は、filterメソッドを使用することです。filterメソッドは配列の各要素に対してテストを行い、テストをパスした要素からなる新しい配列を生成します。この特性を利用して、空白や空文字列を効率的に除去することができます。
filterメソッドを使用する
filterメソッドを使用して、空文字列を除去する基本的な例を以下に示します。
Array.filter(function(value){
return valueのテスト関数
});
let array = ['apple', '', 'orange', null, 'grape', undefined, ''];
let cleanedArray = array.filter(function(value) {
return value !== '' && value !== null && value !== undefined;
});
console.log(cleanedArray); // [ 'apple', 'orange', 'grape' ]
このコードスニペットでは、空文字列、null、undefinedを除去しています。filterメソッドは配列の各要素に対して指定したテスト関数を実行し、その結果が真となる要素のみを新しい配列に集めます。
ちなみに、filterメソッドは反復メソッドと呼ばれる、配列内の各要素に対して繰り返し処理を行うメソッドです。反復メソッドは使いこなせると配列処理が格段に楽になります。ほかの反復メソッドはこちらの記事でご紹介しているので参考にしてみてください。
trimメソッドとfilterメソッドの組み合わせ
Array.value.trim()
- element(必須):挿入する要素
- 元の配列:elementが先頭の要素として挿入される
- 戻り値:要素挿入後の配列の長さ
配列内の要素が前後に空白を含む場合、trimメソッドを用いて空白を除去し、その後でfilterメソッドを適用することで、実質的に空の要素を除去できます。以下に例を示します。
let array = ['apple', ' ', 'orange', ' ', 'grape', ''];
let cleanedArray = array.filter(function(value) {
return value.trim() !== '';
});
console.log(cleanedArray); // [ 'apple', 'orange', 'grape' ]
さらに短縮形を使用した形で下記のようにも記述できます。
let array = ['apple', ' ', 'orange', ' ', 'grape', ''];
let cleanedArray = array.filter(value => value.trim());
console.log(cleanedArray); // [ 'apple', 'orange', 'grape' ]
このコードでは、短縮したアロー関数を使用しています。trimメソッドの結果が真偽値コンテキストでは偽(空文字列)と見なされるので、この方法で空文字列または空白のみを含む要素を効率的に除去できます。
まとめ
配列内の空白を効率的に除去するためのサンプルをご紹介しました。これらの方法を駆使することで、データの前処理や整理をより効率的に行うことが可能です。