如何更新列表的一个元素
How to update one element of a list
我有一个 update
函数,它使用 postID
和一个标题来更新我的 post。
我想遍历我的 post 以找到 post 并更新它的值。我尝试使用 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 )
您可以使用 List.map
,传入映射函数,该函数仅使用匹配的 ID 更新 post。
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
我有一个 update
函数,它使用 postID
和一个标题来更新我的 post。
我想遍历我的 post 以找到 post 并更新它的值。我尝试使用 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 )
您可以使用 List.map
,传入映射函数,该函数仅使用匹配的 ID 更新 post。
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