【问题标题】:Updating elixir map更新灵药地图
【发布时间】:2016-07-09 19:48:55
【问题描述】:

拥有它:

[%{"id" => "1", "name" => "foo"},
 %{"id" => "2","name" => "bar"}]

如何把它变成这样的东西:

[%"foo" => %{"id" => "1","name" => "foo"},
 %"bar" => {"id" => "2","name" => "bar"}]

【问题讨论】:

  • 第二个 sn-p 语法无效。你的意思是%{"foo" => ..., "bar" => ...}
  • 你试过什么?除非我有工作需要,尤其是Minimal, Complete, and Verifiable Example (MCVE),否则我们谁都无法帮助您。解释这一点的一个很好的方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期的输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。另外,请查看FAQask

标签: elixir


【解决方案1】:

假设您想要一个带有String 键的Map,您可以像这样使用forinto:

iex(1)> entries = [%{"id" => "1", "name" => "foo"}, %{"id" => "2","name" => "bar"}]
[%{"id" => "1", "name" => "foo"}, %{"id" => "2", "name" => "bar"}]
iex(2)> for %{"name" => name} = entry <- entries, into: %{}, do: {name, entry}
%{"bar" => %{"id" => "2", "name" => "bar"},
  "foo" => %{"id" => "1", "name" => "foo"}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2016-10-12
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多