【GAS】配列から要素を削除する方法まとめ(pop / shift / splice / filter)
Google Apps Script(GAS)で配列の要素を削除する方法を解説します。
要素を追加する方法は下記の記事で解説しています。
配列要素を削除する方法
配列要素の削除は、主に下記の4つの方法が使われます。
- popメソッド:最後の要素を削除
- shiftメソッド:最初の要素を削除
- spliceメソッド:指定位置要素の削除(追加も可能)
- filterメソッド:条件に該当する要素以外を削除(条件に該当する要素を抽出)
popメソッド:最後の要素を削除
Array.pop()
- 元の配列:最後の要素が削除される
- 戻り値:除外された要素
配列の最後の要素を取り除き、取り除いた要素を返します。
let array = ['apple', 'orange', 'grape'];
let arrayPop = array.pop();
console.log(array); //[ 'apple', 'orange' ]
console.log(arrayPop); //grape
popメソッドの発展的な内容は下記の記事でご紹介しています。
shiftメソッド:最初の要素を削除
Array.shift()
- 元の配列:最初の要素が除外される
- 戻り値:除外された要素
配列の最初の要素を取り除き、取り除いた要素を返すメソッドです。
let array = ['apple', 'orange', 'grape'];
let arrayShift = array.shift();
console.log(array); //[ 'orange', 'grape' ]
console.log(arrayShift); //apple
spliceメソッド:指定位置要素の削除(追加も可能)
Array.splice(from [, num] [, val1, val2, …])
- from(必須):分割対象の配列のインデックス(例:最初の要素を分割したければ「0」を指定)
※配列インデックスより大きい数が指定されたらspliceメソッドは機能しない。また、指定が負の値だった場合は配列の末尾から先頭に向かってカウントされる。 - num(任意):分割対象となるスタート位置からの要素数
※指定されないか配列インデックスより大きい数が指定された場合、スタート位置からの末尾までのすべての要素を分割対象に含める。また、指定が0または負の値だった場合は分割されない。 - valN(任意):配列に追加する要素
- 戻り値:分割した配列(または値)
配列の特定位置にある要素を取り除き、取り除いた位置に新しい要素を追加できる非常に使い勝手が良いメソッドです。
let array = ['apple', 'orange', 'grape'];
let arraySplice = array.splice(1,1,"banana"); //配列番号「1」(orange)から数えて1つの要素を削除し、"banana"を追加する
console.log(array) //[ 'apple', 'banana', 'grape' ]
console.log(arraySplice); // [ 'orange' ]
削除する要素数と追加する要素数は一致している必要はなく、元々の配列から2つ削除して、追加する要素数は1つのみだったり、逆に1つの要素を削除して何も追加しないことも可能です。
削除のみを行いたい場合は、追加要素を空にすればOKです。
let array = ['apple', 'orange', 'grape'];
let arraySplice = array.splice(1,1); // 追加はせずに位置が「1」の要素を一つ削除
console.log(array) // [ 'apple', 'grape' ]
console.log(arraySplice); // [ 'orange' ]
より詳細は下記の記事で解説しています。
filterメソッド:条件に該当する要素以外を削除(条件に該当する要素を抽出)
Array.filter(function)
- function(必須):抽出したい要素の条件
- 元の配列:影響なし
- 戻り値:関数で指定した条件に一致する要素のみの配列
条件指定の関数を引数として、条件に該当しない要素を削除するメソッドです。
下記サンプルコードでは、matchメソッドを用いて「r」という文字が含まれている要素のみを抽出しています。
let array = ['apple', 'orange', 'grape'];
let arrayFilter = array.filter(function(value){
return value.match('r') //
});
console.log(array) // [ 'apple', 'orange', 'grape' ]
console.log(arrayFilter); // [ 'orange', 'grape' ]
関数部分は下記のように短縮した形でも記述可能です。
// let arrayFilter = array.filter(function(value){
// return value.match('r')
// });
let arrayFilter = array.filter(value => value.match('r'));
filterメソッドの詳細は下記の記事でご紹介しています。
まとめ
Google Apps Script(GAS)で配列要素を削除する方法をご紹介しました。
- popメソッド:最後の要素を削除
- shiftメソッド:最初の要素を削除
- spliceメソッド:指定位置要素の削除(追加も可能)
- filterメソッド:条件に該当する要素以外を削除(条件に該当する要素を抽出)