Size: a a a

2020 August 24

TP

Tim Plotnikov in pro.elixir
Lama Lover
А зачем это вообще нужно? Похоже на xy
external API возвращает данные в таком формате, мне нужно привести их к виду, с которым удобно работать. По-моему довольно частая ситуация)
источник

LL

Lama Lover in pro.elixir
Tim Plotnikov
Добрый день!
Подскажите пожалуйста как мне сделать следующее:
У меня есть 2 массива с мапами внутри:
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]


Как мне смерджить это всё в один массив вида:
r
esult = [%{«name» => «John», «age» => 30}]
?
def zip_lists_of_maps(l1, l2, ans \\ [])
def zip_lists_of_maps(_, [], ans), do: ans
def zip_lists_of_maps([], _, ans), do: ans
def zip_lists_of_maps([m1 | l1], [m2 | l2], ans) do
 zip_lists_of_,maps(l1, l2, [Map.mrege(m1, m2) | ans])
end
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Lama Lover
def zip_lists_of_maps(l1, l2, ans \\ [])
def zip_lists_of_maps(_, [], ans), do: ans
def zip_lists_of_maps([], _, ans), do: ans
def zip_lists_of_maps([m1 | l1], [m2 | l2], ans) do
 zip_lists_of_,maps(l1, l2, [Map.mrege(m1, m2) | ans])
end
источник

YN

Yar Nayar in pro.elixir
😁
источник

LL

Lama Lover in pro.elixir
Шо не так? Тут и tail recursion и всего один проход по спискам
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Lama Lover
Шо не так? Тут и tail recursion и всего один проход по спискам
Слишком медленно. Надо нифка
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Слишком медленно. Надо нифка
Надо port_driver
источник

TP

Tim Plotnikov in pro.elixir
Źmićer Rubinštejn
Enum.zip(m1,  m2) |> Enum.map(fn {m1, m2}  -> Map.merge(m1,  m2) end)
Отлично, это сработало, спасибо!
fn {m1, m2} -> … Это такой синтаксис у деструктуринга?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Какая структура - такой и деструктуринг
источник

AB

Alexey Bolshakov in pro.elixir
iex> data1 = [%{"name" => "John"}]
[%{"name" => "John"}]
iex> data2 = [%{"age" => 30}]
[%{"age" => 30}]
iex> data1 ++ data2
[%{"name" => "John"}, %{"age" => 30}]
iex> (data1 ++ data2) |> Enum.reduce(%{}, fn(x, acc) -> Map.merge(acc, x) end)
%{"age" => 30, "name" => "John"}
iex> (data1 ++ data2) |> Enum.reduce(%{}, &(Map.merge(&1, &2)))
%{"age" => 30, "name" => "John"}
источник

T

Tharin in pro.elixir
Andy Krasnov
может быть лучше на русский?
С удовольствием, Но я не буду переводить))
источник

T

Tharin in pro.elixir
Tim Plotnikov
Добрый день!
Подскажите пожалуйста как мне сделать следующее:
У меня есть 2 массива с мапами внутри:
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]


Как мне смерджить это всё в один массив вида:
r
esult = [%{«name» => «John», «age» => 30}]
?
Вопрос: а зачем на выходе вложенная структура (один мап в списке)?
источник

T

Tharin in pro.elixir
Если у вас всегда один элемент списка. Не проще ли от списка отказаться?))
источник

TP

Tim Plotnikov in pro.elixir
Tharin
Если у вас всегда один элемент списка. Не проще ли от списка отказаться?))
Он не один, это я для примера написал)
источник

T

Tharin in pro.elixir
На выходе
источник

T

Tharin in pro.elixir
Вы планируете объединить все мапы в один, а потом положить их в список, так?
источник

TP

Tim Plotnikov in pro.elixir
На вход два списка с мапами, на выход один список с мапами)
источник

T

Tharin in pro.elixir
Tim Plotnikov
Добрый день!
Подскажите пожалуйста как мне сделать следующее:
У меня есть 2 массива с мапами внутри:
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]


Как мне смерджить это всё в один массив вида:
r
esult = [%{«name» => «John», «age» => 30}]
?
Здесь вы просите список с одним мапом
источник

T

Tharin in pro.elixir
То есть их смерджить
источник

TP

Tim Plotnikov in pro.elixir
Tharin
Здесь вы просите список с одним мапом
Ну не буду же я сюда в чат скидывать список из 100 мап
источник