У меня есть список адресов, и мне нужно исправить записи, некоторые из записей имеют номер дома в качестве диапазона, и мне нужно разбить его на несколько записей. Как бы я перечислил список и исправил/дублировал записи?Разделить элементы на несколько элементов в Elixir
defmodule EnumTesting do
def list_stuff() do
list = [ %{street: "street", nr: "2" }, %{street: "street", nr: "4" }, %{street: "street", nr: "6-10" } ]
list |> Enum.filter(&needs_fixing?(&1))
end
defp needs_fixing?(item) do
String.contains?(item.nr, "-")
end
end
Ожидаемый результат:
[ %{street: "street", nr: "2" }, %{street: "street", nr: "4" }, %{street: "street", nr: "6" }, %{street: "street", nr: "8" }, %{street: "street", nr: "10" } ]
Почему ожидаемый результат не имеет nr '7' и' 9'? – Dogbert
@Dogbert, потому что во многих странах уличные номера странны на одной стороне улицы и даже на другой. Эта сторона даже :) – mudasobwa
@mudasobwa, тогда вопрос кажется неясным тогда. Что, если nr «8-11» (четный)? что, если это «7-10» (нечетно-четное)? – Dogbert