2016-04-04 39 views
2

我有一個update函數需要postID和一個標題來更新我的文章。如何更新列表中的一個元素

我想遍歷我的帖子找到帖子並更新它的值。我嘗試使用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

您可以使用List.map,傳遞一個映射功能,僅更新具有匹配ID的帖子。

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 
相關問題