2016-04-04 16 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 
相关问题