2016-08-06 3 views
0
category_urls = [ 
    "https://thepiratebay.org/browse/100/0/3", 
    "https://thepiratebay.org/browse/200/0/3", 
    "https://thepiratebay.org/browse/300/0/3", 
    "https://thepiratebay.org/browse/400/0/3", 
    "https://thepiratebay.org/browse/500/0/3", 
    "https://thepiratebay.org/browse/600/0/3" 
] 
result = 
    category_urls 
    |> Enum.map(fn category_url -> 
    1..50 
    |> Enum.map(fn i -> String.replace(category_url, "/0/", "/#{i}/") end) 
    end) 

Я пытаюсь создать карту URLs мне нужно ползти.Как сгладить карту карты строк в Эликсире?

Приведенный выше код создает для меня карту карты строк. Я хотел бы просто сгладить его до простой карты строк.

Как это сделать в Эликсире?

ответ

2

Использование Enum.flat_map/2.

category_urls = [ 
    "https://thepiratebay.org/browse/100/0/3", 
    "https://thepiratebay.org/browse/200/0/3", 
    "https://thepiratebay.org/browse/300/0/3", 
    "https://thepiratebay.org/browse/400/0/3", 
    "https://thepiratebay.org/browse/500/0/3", 
    "https://thepiratebay.org/browse/600/0/3" 
] 
result = 
    category_urls 
    |> Enum.flat_map(fn category_url -> 
    1..50 
    |> Enum.map(fn i -> String.replace(category_url, "/0/", "/#{i}/") end) 
    end) 
    end 

Хотя, использовать comprehension бы сделать код намного проще.

for i <- 1..6, j <- 1..50, do: "https://thepiratebay.org/browse/#{i}00/#{j}/3" 

 Смежные вопросы

  • Нет связанных вопросов^_^