前回記事:
https://qiita.com/kouichirou/items/5622dcb14ab22441fe27
#第二弾です。
とりあえず細かいことはさておき、今度は
・リストAから変数1で検索したエントリーのBoolean如何で、リストBの検索内容を変数2の値あるいは固定値に切り替える
・さらに、その結果が何もない場合は、デフォルト値まで用意する
という内容です。
###早速コードをば。
(
$v := function($a, $b , $LIST1 , $LIST2 ){
$LIST1[ key1 = $a ].boolean ?
$LIST2[ key2 = $b ].name:
$LIST2[ key2 = "*" ].name
}(
$._hoge,
$._fuga,
$globalContext( "TMP" ),
$.member
);
$v ? $v : "NO_MEMBER_FOUND"
)
今回は前回の内容に加えて、三項演算子? :
とJSonata内部で変数定義をする内容を使ってます。
三項演算子は2箇所で使ってますが、1箇所目で要件1「リストAから変数1で検索したエントリーのBoolean如何で、リストBの検索内容を変数2の値あるいは固定値に切り替える」を実装し、2箇所目で要件の2つ目であるデフォルト値を実装しました。
こういうのをいちいちJavascriptで書かなくて良いので便利ですねぇ。
#本家ガイド
変数定義: https://docs.jsonata.org/programming.html#variables
三項演算子: https://docs.jsonata.org/operators.html#--1
今回はシンプルですがこれで終わりです。ありがとうございました。
#第三弾(いよいよ最後)
https://qiita.com/kouichirou/items/09a57e6b834648e9b470