/*Google AdSense自動広告*/

2019年6月20日木曜日

GAS(Google Apps Script) / JavaScript~2つの連想配列で、キーが一致する要素のみ追加する方法

内容がマニアック過ぎて誰かの役に立つとは思えませんが…。

「2つの連想配列で、キーが一致する要素のみ追加する方法」

の紹介です。先日公開した、SheetWrapperの操作に使用しました。具体的には、タスクが完了したから完了シートに移動したいけれど、移動先には最低限の項目しか無いから、エラーを吐かずにうまく処理したいお話です。

ミソは、連想配列のキーの有無を調べることと、キーの数を合わせることです。

コード


var myOrderList =   {orderId:['D00001', 'A00001'], person:['大喬', '郭淮'], appearance:['最上級', '醜'] };
  var addOrderList = {orderId:'A00123', company:'揚子江周遊', person:'淩統' };
  //↑addOrderListのcompanyは無視(空欄)
   
  Logger.log(myOrderList);
  Logger.log(addOrderList);  
 
  for(var item in myOrderList){ // itemにはキーが入る
    if(addOrderList[item]){ // itemの有無を返す
      myOrderList[item].push(addOrderList[item]);
    } else {
      myOrderList[item].push(''); // addに無いキーは空欄
    }    
  }  
 
  Logger.log(myOrderList);


実行ログ(前後の配列の内容)

{appearance=[最上級, 醜], orderId=[D00001, A00001], person=[大喬, 郭淮]}
{orderId=A00123, person=淩統, company=揚子江周遊}

{appearance=[最上級, 醜, ], orderId=[D00001, A00001, A00123], person=[大喬, 郭淮, 淩統]}

0 件のコメント:

コメントを投稿