LoginSignup
3
2

More than 5 years have passed since last update.

Elixir~表をデータ列から抽出、表示つづき~ 年齢別に並べ替え

Last updated at Posted at 2019-02-13

ここまでのあらまし

マズいです。
ブラウザを開いたら残っていたQiitaのエディタを使って前回記事のつづきの理解を書こうと思ったら、前回記事をそのものを編集して更新してしまいました。
そういうものだと思って読んでください...苦笑

マップリストを呼び出し、for文でWebに一覧表示させるコードです。

データ列から抽出、表示

前回このコードを書き、PhoenixでWeb上に表示させるところまでは理解できました。
ググったら<tr>や

はhtmlの見てくれ?に関するタグなんですね。
骨子はやはりElixirにあるとわかると、理解が容易でした。

<%
data = [
  %{ "name" => "けんと", "age" => 20, "team" => "みずの音楽教室", "position" => "音楽家" }, 
  %{ "name" => "たくま", "age" => 32, "team" => "アルファノート", "position" => "音楽家、Webデザイナー" }, 
  %{ "name" => "かすみ", "age" => 32, "team" => "ベトナム日本語教師", "position" => "小説家" }, 
  %{ "name" => "たろう", "age" => 21, "team" => "謎のカナダ在住デザイナー", "position" => "映像制作、ゲーマー" }, 

]
%>
<table border="1">
<%= for record <- data do %>
<tr>
  <td><%= record[ "name" ] %></td>
  <td><%= record[ "age" ] %></td>
  <td><%= record[ "team" ] %></td>
  <td><%= record[ "position" ] %></td>
</tr>
<% end %>
</table>

このようなコードで

Screen Shot 2019-02-13 at 17.34.26.png

簡単にデータ列からExcelシートのような表示ができました。

加えた式

...
]
|>Enum.sort( fn (record_current, record_next) -> record_current[ "age" ] < record_next[ "age" ] end)
%>
...

パイプライン演算子を用いた Enum.sortで年齢を若い順に並べ替えています。
基本的にはfn~endの型の式の応用なので、わたしでもなんとか理解できました!

Screen Shot 2019-02-14 at 15.58.38.png

おわりに

これでpiacereさんのExcelから関数型言語マスター2回目:データ列の”抽出”、”Web表示”
の内容をカバーすることができました。

準じて次回の内容に取り組んでいきたいと思います。

うまず、たゆまず、頑張ります。
Kento Mizuno

3
2
0

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
3
2