LoginSignup
1

More than 5 years have passed since last update.

Node-redのJSonataの事例2 〜条件分岐する検索内容とデフォルト値〜

Last updated at Posted at 2018-11-03

前回記事:
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

今回はシンプルですがこれで終わりです。ありがとうございました。

第三弾(いよいよ最後)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1