小编fra*_*909的帖子

如何总结 Elixir 映射列表中不同键的值

您好,我想将所有count和所有val键汇总到一个包含两个键的累积值的新映射中。

这是我到目前为止所做的:

list = [
  %{count: 1, val: 12},
  %{count: 3, val: 7},
  %{count: 1, val: 5},
  %{count: 2, val: 3},
  %{count: 2, val: 5},
  %{count: 1, val: 3}
]

x = &%{count: &1, val: &1}
sumCount = list |> Enum.reduce(0, &(&1.count + &2)) |> x.() |> IO.inspect()
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

#ouput: 
%{count: 10, val: 10}
Run Code Online (Sandbox Code Playgroud)

但我需要这个结果:

%{count: 10, val: 35}
Run Code Online (Sandbox Code Playgroud)

我只知道如何总结一把钥匙。我应该分别总结两个功能中的键吗?我认为那不是高性能的,考虑到列表会有更多的值/映射或者更多的键。有没有一种有效的方法可以一次总结所有的键?

reduce elixir

2
推荐指数
3
解决办法
539
查看次数

为什么 Phoenix LiveView 函数 `push_event` 未定义?

我想使用以下功能将事件从 liveView 服务器发送到客户端:

\n
  def handle_event("test", _, socket) do\n    {:noreply, push_event(socket, "testEvent", %{coins: 23, user: "user"})}\n  end\n
Run Code Online (Sandbox Code Playgroud)\n

这在 liveview 文档中的解释非常相似。 \n https://hexdocs.pm/phoenix_live_view/js-interop.html \n但是我收到此错误消息:

\n
(CompileError) undefined function push_event/3\n\nStacktrace:\n  \xe2\x94\x82 (elixir 1.10.4) src/elixir_locals.erl:114: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3\n  \xe2\x94\x82 (stdlib 3.8) erl_eval.erl:680: :erl_eval.do_apply/6\n
Run Code Online (Sandbox Code Playgroud)\n

我错过了一些导入吗?或者我做错了什么?

\n

elixir phoenix-framework phoenix-live-view

2
推荐指数
1
解决办法
1195
查看次数