2016-04-04 15 views
2

の機能はpostIDで、投稿を更新するタイトルが付いています。リストの1つの要素を更新する方法

投稿を検索してその値を更新するために投稿をループしたいと思います。私はList.mapを使ってみましたが、どこに置くべきか分かりません。ここで私は擬似コードで何をしたいです:

update action model = 
    case action of 
    UpdateTitle postID title -> 
     //something like this: 
     for post in model.posts : 
     if post.id == postID then 
      { post | title = title } 

     (model.posts , Effects.none) 
+1

'List.Extra'で' find'を使って良いidを持つ投稿を見つけることを検討してください。 –

答えて

6

あなたが唯一一致するIDを持つポストを更新し、マッピング関数に渡して、List.mapを使用することができます。

update action model = 
    case action of 
    UpdateTitle postID title -> 
     (List.map (setTitleAtID title postID) model.posts , Effects.none) 

setTitleAtID title postID post = 
    if post.id == postID then 
    { post | title = title } 
    else 
    post