/*Google AdSense自動広告*/

2019年6月12日水曜日

GAS(Google Apps Script) / JavaScriptで配列の途中を削除 or 書き換えを行うsplice()の解説

GASでスプレッドシートの内容を getRange().getValues() で取得した後、分かりやすいように項目名の連想配列にしたので、それを編集するsplice()関数について勉強しました(仕事の合間に?仕事をサボって???)。

以下にコードで解説します。配列の連想配列を使う例は稀有なので、参考になさってください(使う人も稀か??)。

function myFunction() {
// 連想配列の初期化(連想配列+配列)
  var items = {'米':['Sasanisiki', 'Koshihikari', 'Tsuyahime'],
               '芋':['Satsuma', 'Jager', 'Yamato']};
 
// 連想配列の全体表示
  Logger.log(items);

// 連想配列の個別表示  
  // for ~in式で連想配列をループできる
  for(var item in items){
    Logger.log(item);
    Logger.log(items[item]);
  }
 
// Array.spliceの引数は(位置、要素数、追加要素)
// 追加要素の有無→削除か書き換えか?
  items['米'].splice(1, 1, 'Yamadanishiki');
  items['芋'].splice(0, 1);
 
// 変更後1
  for(var item in items){
    Logger.log(item);
    Logger.log(items[item]);
  }
 
//複数削除・追加要素が少ない場合
  items['米'].splice(0, 5); // 要素数オーバーはエラーにならない
  items['芋'].splice(0, 2, 'Taro');
 
// 変更後2
  for(var item in items){
    Logger.log(item);
    Logger.log(items[item]);
  }  
}


実行ログ

【初期値】
{米=[Sasanisiki, Koshihikari, Tsuyahime], 芋=[Satsuma, Jager, Yamato]}

[Sasanisiki, Koshihikari, Tsuyahime]

[Satsuma, Jager, Yamato]

【変更後1】

[Sasanisiki, Yamadanishiki, Tsuyahime]

[Jager, Yamato]

【変更後2】

[]

[Taro]

0 件のコメント:

コメントを投稿