我刚开始在 Elm 中编程,但遇到了一些问题:
我想有一种方法可以更新列表中某个索引处的元素字段。
我的 签名看起来像这样:
updateElement : List (ID, Task) -> Int -> List (ID, Task)
和:
type alias Task =
{ description : String, focus : Bool}
在这种情况下,我想将索引处任务的 bool 值(焦点)设置为 true,并将列表中的所有其他任务设置为 false。
我已经尝试过在 Elm 中使用数组,但后来我必须使用 Maybe 并且认为这不是一个好的解决方案。
我想我将不得不使用“ map ”来更改列表中的元素,但我不知道如何在特定索引处更改它。
谢谢!
最佳答案
现在您已经澄清了您的问题,真正的答案是 Chad 发布的两个更新的组合
updateElement : List (ID, Task) -> Int -> List (ID, Task)
updateElement list indexToFocusOn =
let
toggle index (id, task) =
if index == indexToFocusOn then
(id, { task | focus = true })
else
(id, { task | focus = false })
in
List.indexedMap toggle list
关于arrays - Elm - 更新列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502706/