让我们假设我有这样的结构:
results = %{page: page_numer, period: period, result: [%Entry{}, %Entry{}]}
我想在result.result中的每个%Entry {}附加一些数据,就像它一样:
result.result
|> Enum.map(fn entry ->
entry.page = results[:page]
entry.period = results[:period]
end)
有可能吗?
答案 0 :(得分:5)
您可以使用地图更新语法(假设:page
结构中包含:period
和Entry
字段):
new_result = result.result
|> Enum.map(fn entry ->
%{entry | page: results[:page], period: results[:period]}
end)
答案 1 :(得分:3)
最简单的方法是使用Kernel.struct/2
函数(或在未知密钥上引发的更安全的替代struct!
)
result.result
|> Enum.map(&struct!(&1, page: results[:page], period: results[:period]))