【发布时间】:2018-05-18 13:23:58
【问题描述】:
说我想使用一个数组,其中值是映射。
IE
[ %{ "foo" => "bar"}, %{ "foo" => "baz"} ]
我可以使用它。
<input name = "post[list][][foo]" value = "bar">
<input name = "post[list][][foo]" value = "baz">
好的,但如果我想向其中一个地图或两者添加更多键怎么办?
这对我来说是分崩离析的地方。
<input name = "post[list][][email]" value = "1@aol.com">
<input name = "post[list][][primary]" value = "false">
<input name = "post[list][][email]" value = "2@aol.com">
<input name = "post[list][][primary]" value = "true">
我最终得到了一个包含 4 个项目的数组。
[%{"email" => "1@aol.com"}, %{"primary" => "false"}, %{"email" => "2@aol.com"}, %{"primary" => "true"}]
当我真正想要的是一个由两个项目组成的数组时。
[%{"email" => "1@aol.com", "primary" => "false"}, %{"email" => "2@aol.com", "primary" => "true"}]
请注意,每个映射都有两个键 email 和 primary 作为所需映射。 IE %{"email" => "1@aol.com", "primary" => "false"} 与我最终得到的结果相反,它是一个由 4 个映射组成的数组,每个映射都有一个键。
现在我知道这与我命名输入的方式有关。有谁能帮帮我吗?
仅供参考,此数组和映射的上下文来自 Elixir。
【问题讨论】:
-
我在这里有一个类似的问题 -> stackoverflow.com/questions/47628425/… 我想没有办法轻松处理它,看起来像添加索引然后遍历它们是要走的路。