Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年11月4日月曜日

オブジェクトの中から条件に一致する要素を抜き出す(filter, 複数プロパティを対象)


オブジェクトの中から条件に一致する要素を抜き出す(filter)
ではオブジェクトの中の一つのプロパティを見て一致するものを取得しました。

今回は2つのプロパティを見て一致するものを取得してみます。

objのようなオブジェクトを用意して
enが「Libra」で
jaが「てんびん座」のidを取得してログに出してみます。



コード.gs
var obj = [
  {"id": 1, "en": "Aries", "ja": "おひつじ座"},
  {"id": 2, "en": "Taurus", "ja": "おうし座"},
  {"id": 3, "en": "Gemini", "ja": "ふたご座"},
  {"id": 4, "en": "Cancer", "ja": "かに座"},
  {"id": 5, "en": "Leo", "ja": "しし座"},
  {"id": 6, "en": "Virgo", "ja": "おとめ座"},
  {"id": 7, "en": "Libra", "ja": "てんびん座"},
  {"id": 8, "en": "Scorpius", "ja": "さそり座"},
  {"id": 9, "en": "Sagittarius", "ja": "いて座"},
  {"id": 10, "en": "Capriconus", "ja": "やぎ座"},
  {"id": 11, "en": "Aquarius", "ja": "みずがめ座"},
  {"id": 12, "en": "Pisces", "ja": "うお座"},
  {"id": 13, "en": "Aries", "ja": "牡羊座"},
  {"id": 14, "en": "Taurus", "ja": "牡牛座"},
  {"id": 15, "en": "Gemini", "ja": "双子座"},
  {"id": 16, "en": "Cancer", "ja": "蟹座"},
  {"id": 17, "en": "Leo", "ja": "獅子座"},
  {"id": 18, "en": "Virgo", "ja": "乙女座"},
  {"id": 19, "en": "Libra", "ja": "天秤座"},
  {"id": 20, "en": "Scorpius", "ja": "蠍座"},
  {"id": 21, "en": "Sagittarius", "ja": "射手座"},
  {"id": 22, "en": "Capriconus", "ja": "山羊座"},
  {"id": 23, "en": "Aquarius", "ja": "水瓶座"},
  {"id": 24, "en": "Pisces", "ja": "魚座"},
]

function filter_obj() {
  var filtered = obj.filter(judge);
  var result = get_result(filtered);
  Logger.log(result);
}

function judge(items) {
  if(items["en"] === "Libra" && items["ja"] === "てんびん座"){
    return true;
  }else{
    return false;
  }
}

function get_result(filtered) {
  var result = [];
  for (var i = 0; i < filtered.length; i++) {
    result.push(filtered[i]["id"]);
  }
  return result;
}



実行結果

filter_obj() を実行すると以下のようなログが出ます。

en が「Libra」で ja が「てんびん座」の id は 「7」



関連記事

オブジェクトの中から条件に一致する要素を抜き出す(filter)

Latest post

Googleドキュメントに見出しを追加したい

今回の例では、ドキュメントの末尾に「見出しD」 を追加します。 見出しA, B, C, Dのスタイルは、見出し3 ( HEADING3 ) に設定しています。  下記Code.gsの  GOOGLE_DOCUMENT_URL を設定して  addHeadingToEnd()  を...