本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
配列を使ったデータの追加、削除
シート上のデータは配列としてまとめて収得、入力するとアクセス回数、実行時間を削減できます。
理想的な手順
・シート上のデータを配列として取得
・配列の状態で処理を施す
・処理を施した配列のデータをまとめてシートに入力
シート上のデータを追加、挿入、削除をする場合
pushメソッド:配列の末尾に新しい要素を追加
popメソッド:配列の最期の要素を取り出す
spliceメソッド:配列内の指定した位置にある古い要素を取り除きつつ、新しい要素を追加することが可能
shiftメソッド:配列の最初の要素を取り出す
unshiftメソッド:配列の先頭の新しい要素を追加する
お試し
データを入れて行ってみてください
function toshiki4() {
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getDataRange(). getValues();
values.push(['アッキー', 9, 'りんご', 'ドラえもん', '本']);
console.log(values);
values.splice(1, 1, ['パパ', 41, '肉', 'ガンダム', 'ゲーム']);
console.log(values);
values.shift();
console.log(values);
sheet.clearContents();
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}
配列を使ったデータの検索
ここで使うが
indexOfメソッド:文字列や配列において、検索したい要素が配列内の先頭から何番目にあるかを教えてくれるメソッド
flatメソッド:flatメソッドは2次元配列を1次元配列に変換する事ができるメソッド
お試し
データを入れて行ってみてください
function toshiki4() {
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getDataRange(). getValues();
const keys = sheet.getRange(1, 3, sheet.getLastRow()).getValues().flat();
console.log(keys);
const favorite = 'みかん';
console.log(keys.includes(favorite));
const row = keys.indexOf(favorite);
console.log(row);
const [ name, age] = values[row];
console.log(`${favorite}が好きなのは、${age}際の${name}です。`);
}
配列を使ったデータの抽出
シートから特定の条件だけを抽出したいときには、filterメソッドを使用
filterメソッド:配列の要素のうち関数fncを満たす要素のみで新しい配列を生成して返す。(ファルター)
function toshiki4() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const values = ss.getActiveSheet().getDataRange().getValues();
const header = values.shift();
const targetValues = values.filter(record => {
const [name, age] = record;
return age < 30;
});
targetValues.unshift(header);
const targetSheet = ss.getSheetByName('出力シート');
targetSheet
.getRange(1, 1, targetValues.length, targetValues[0].length)
.setValues(targetValues);
}