Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@kmizuno0211

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

ここまでのあらまし

マズいです。
ブラウザを開いたら残っていた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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?