LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Wednesday, January 9, 2019

オブジェクトの中から一致するキーを見つけて新しいオブジェクトを作る


このようなオブジェクトの中から、Libra, Scorpiusを見つけて
  var obj = {
    'Aries':'Aries',
    'Taurus': 'おうし座',
    'Gemini': 'ふたご座',
    'Cancer': 'かに座',
    'Leo': 'しし座',
    'Virgo': 'おとめ座',
    'Libra': 'てんびん座',
    'Scorpius': 'さそり座',
    'Sagittarius': 'いて座',
    'Capriconus': 'やぎ座',
    'Aquarius': 'みずがめ座',
    'Pisces': 'うお座'
  }


このように新しいオブジェクトを作りたい
var obj2 = {
  Libra=てんびん座,
  Scorpius=さそり座
}



コード.gs
function returnObj() {
  var obj = {
    'Aries':'Aries',
    'Taurus': 'おうし座',
    'Gemini': 'ふたご座',
    'Cancer': 'かに座',
    'Leo': 'しし座',
    'Virgo': 'おとめ座',
    'Libra': 'てんびん座',
    'Scorpius': 'さそり座',
    'Sagittarius': 'いて座',
    'Capriconus': 'やぎ座',
    'Aquarius': 'みずがめ座',
    'Pisces': 'うお座'
  }
  return obj;
}

function test1() {
  var obj = returnObj();
  var key = "Scorpius";
  var value = obj[key];
  Logger.log(value);
}

function test2() {
  var obj = returnObj();
  var key = "Scorpius";
  var value = obj[key];
  var obj2 = {};
  obj2[key] = value
  Logger.log([value, obj2]);
}

function createObj() {
  var obj = returnObj();
  var keys = ["Scorpius", "Libra"];
  var obj2 = {};
  for(var i = 0; i < keys.length; i++) {
    var value = obj[keys[i]];
    obj2[keys[i]] = value
  }
  Logger.log(obj2);
}
意訳
この機能がやること
オブジェクトを作って
key: valueのセットを作って












返す


この機能がやること
objにreturnObj()の戻り値を入れて
探すkeyを決めて
objからvalueを取得して
ログに出す


この機能がやること
objにreturnObj()の戻り値を入れて
探すkeyを決めて
objからvalueを取得して
新しいオブジェクトobj2を作って
obj2 = { key: value } を作って
valueとともにログに出す


この機能がやること
objにreturnObj()の戻り値を入れて
探すkeyを複数決めて
新しいオブジェクトobj2を作って
keysの要素の数だけ繰り返す
keyをひとつずつ取り出してそのvalueを取得して
obj2 = { key: value } を作って

obj2を返す



実行結果

createObj()を実行するとこのようなログが出ます


(test1とtest2はcreateObjを導くために試した足跡)


関連記事


参考

オブジェクトの利用
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Working_with_Objects

Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...