今回はsortノードです。ベタで何の工夫もないソートの例題やってみました。数値配列をsplitしmsg列を sort ノードに送り込み、payloadの数値をキーにして昇順ソート、出力されたmsg列をjoinノードで配列(勿論ソート済の)に戻すというもの。言葉で書くとメンドウですが、ノードをつなげていくだけ、お楽。
※「ブロックを積みながら」投稿順 index はこちら
最初は sort するところまでのフローとその動作
冒頭のアイキャッチ画像のフローのうち、最初はソートするところまでのフローを動かして動作を観察してみました。
左端のInjectノードからは、5個の要素を持つ数値配列が送り出されます。そして、splitノード(デフォルト設定のまま)で、数値配列は各要素毎にメッセージとして分割されます。なお split ノードは各メッセージのpartsプロパティにsplitしたときの順序の情報などを記載してくれます。
split後に5分割されたメッセージの様子が以下に。
さて上記のようなmsg列がsortノードになだれ込んできます。迎え撃つ?sortノードの設定が以下に。
ミソは「対称」が「メッセージ列」としてあることと、数値として比較にチェック入れてあるくらいです。
sortノードを通過した msg 列の様子が以下に。
予定通り昇順にソートされて出てきます。ここにもpartsプロパティが記録されていますが、そこに記載されている順番は以前のものではなく、ソートされた順番に書き換わっています。
ソートされた結果をJoinして配列に戻すところ
上記のソートされた msg列を joinノードに入力して1個の配列に復元してみます。フローの追加部分は以下のようです。
joinノードはデフォルトのままでOK(partsプロパティが存在するため)でした。Join後の様子が以下に。
sort 済の数値配列に復元されとりますで。当たり前か。