GASとJSで学ぶ!三項演算子の活用法 〜基本から応用まで〜


GASでの三項演算子の基本
JavaScript(GASでも使用)には、三項演算子という便利な構文がある。これは、
条件によって値を選ぶためのコンパクトな if 文のような書き方
のことだ。基本構文は、
条件式 ? 真のときの値 : 偽のときの値
だぞ。
例えば、次のコードを見てほしい。
const result = (score > 50) ? "合格" : "不合格";
Logger.log(result); // スコアが50より大きいなら「合格」、そうでないなら「不合格」を表示
条件 ? 真の場合 : 偽の場合 というシンプルな構造だ。
条件は「score > 50」、つまりスコアが50より大きいかどうか。
で、この条件式がtrue、つまりスコアが50より大きいならresultには「合格」を入れる。
一方、この条件式がfalse、つまりスコアが50以下ならresultには「不合格」を入れるんだ。
GASの三項演算子の応用例
さあ、ここからは三項演算子の応用だ。
三項演算子を連続で使用
複数の可能性に応じて異なる結果を返す三項演算子だ。
const level = (score > 80) ? "Excellent" :
(score > 60) ? "Good" :
"Need Improvement";
Logger.log(level); // スコアが80より大きいなら「Excellent」、60より大きければ「Good」、そうでなければ「Need Improvement」
スコアが80より大きいなら「Excellent」、80以下60より大きいなら「Good」、それ以外は「Need Improvement」だ。
undefinedやnullのチェック
よく使う用途として、変数がnullやundefinedであるかをチェックすることがある。
const value = myVar !== undefined && myVar !== null ? myVar : "デフォルト値";
Logger.log(value);
myVarがundefinedまたはnullでない場合、その値を使用し、そうでなければ「デフォルト値」を使う。
この使い方で予期しないエラーを未然に防げるはずだ。
えっ、nullとundefinedの違いがわからない?
そんなときは「GASのnullとundefinedの違い」を復習してみよう。

何もしない用途
特殊な場合に、何も処理しないこともある。
isActive ? executeAction() : null; // isActiveがtrueのときのみexecuteActionを実行
isActiveがtrueのときのみexecuteActionを実行している。
NULL を意味的に「何もしない」選択肢として活用する方法だ。

練習問題
以下のコードで最も適切な三項演算子を使って、変数が10より大きいときに「大きい」、10以下のときに「小さい」を変数に代入しなさい。
let x = 12;
let description;
解答と解説
適切な三項演算子を用いることで、条件を簡潔に判定できる。
let x = 12;
let description = (x > 10) ? "大きい" : "小さい";
Logger.log(description); // x が 10より大きいため、「大きい」と表示される
この三項演算子は条件に基づいて変数descriptionに適切な文字列を代入する。
条件がtrueのときは「大きい」を、falseのときは「小さい」を返す構造だ。三項演算子を使えば、短くシンプルなコードが書ける。