タイトルで表現するのが難しいのですが
以下のような複数のオブジェクトを含む配列があって
enがLeoのものがあるか true / false で判定したい
var objs = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
]
コード.gs
var objs = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
]
function myFunction() {
var value = "Leo";
var result = hasValue(value);
Logger.log(result);
}
function hasValue(value) {
for(var i = 0; i < objs.length; i++) {
var obj = objs[i];
if(obj["en"] === value) {
return true;
}
}
return false;
}
| 意訳
オブジェクトたちを入れた配列を用意する
この機能がやること
探す値を決めて
hasValueに渡して
結果をログに出す
この機能がやること
objsの要素の数だけ繰り返す
objsの要素をひとつずつ取り出して
valueと同じなら
true返す
途中でtrueを返さなければfalseを返す
|
実行結果
var value = "Leo" で myFunction()を実行した結果→true
var value = "Cat" にして myFunction()を実行した結果→false
最初に思いついた書き方
hasValueの処理が冗長に感じて、上記コード.gsに書き換えました
コード2.gs
var objs = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
]
function myFunction() {
var value = "Leo";
var result = hasValue(value);
Logger.log(result);
}
function hasValue(value) {
var result;
for(var i = 0; i < objs.length; i++) {
var obj = objs[i];
if(obj["en"] === value) {
result = true
return result;
} else {
result = false
}
}
return result
}
|