나는이 시뮬레이션이 :모든 항목을 모른 채 기록의 항목을 제거
init : (Model, Cmd Msg)
init = ({ dog = List Dog }, Cmd.none)
type alias Dog =
{ name : String
, age : Int
, price : Float
, extra = List Extra
}
type alias Extra =
{ allergies : List String
, wishes : List String
}
[{ name = "Hot"
, age = 1
, price = 300.5
, extra = [{...}]
},
{ name = "Dog"
, age = 3
, price = 150.0
, extra = [{...}]
}]
을 그리고 코드의 판단 부분에서 개의 '엑스트라'를 제거하려면 :
[{ name = "Hot"
, age = 1
, price = 300.5
},
{ name = "Dog"
, age = 3
, price = 150.0
}]
I '추가'항목을 제거하여 전체 목록을 매핑하고 새 항목을 생성하면됩니다.
removeExtraOfDogs dogList =
(dogList |> List.map (\dog ->
{ name = dog.name
, age = dog.age
, price = dog.price
}
))
하지만 유형에 어떤 변수가 있는지 알지 않고도 제거 할 여분을 전달하는 것이 동적입니다.
왜 필드를 삭제하려고합니까? 왜 '{name, age, price}'를 가진 새로운 타입의 별칭을 만드는 것이 좋을까요? – naomik
@naomik, 왜냐하면 내가 개발하고있는 프로젝트에서, 레코드의 1 또는 2 항목을 취하는 것과 동일한 작업을 수행해야하는 +50 유형이 있기 때문입니다. 이유 : .csv 형식으로 내보낼 필요가 있으며 '추가'가 필요하지 않습니다. –
나는 Elm에서 Json 인코딩/디코딩을 읽는 것이 좋습니다. Csv를 인코딩 할 때도 동일한 규칙이 적용됩니다. 더 자세한 검색 결과를 찾을 수 있기 때문에 Json에 대한 정보 만 읽으십시오. – naomik