Руби: Есть ли более элегантный способ сделать этот цикл и массив? - PullRequest
0 голосов
/ 30 июля 2010

Хорошо, этот код дает мне именно то, что я хочу, но кажется, что он может быть чище, поэтому вот код:

colour = ["red", "white", "orange", "black"]  
x=[]  
colour.each_with_index do |c, i|  
   x[i] = "<a href='http://#{c}.test.com'>#{c}</a>"  
end  
tags2 = x.join(", ")  
p "The code ==>#{tags2}<=== " 

Есть ли кто-нибудь?

Ответы [ 2 ]

4 голосов
/ 30 июля 2010
tags2 = colour.map {|c| "<a href='http://#{c}.test.com'>#{c}</a>" }.join(", ")

map просто вызывает блок для каждого элемента массива, а затем возвращает массив результатов.

1 голос
/ 30 июля 2010
tags = ["red", "white", "orange", "black"].map do |color|
    "<a href='http://#{color}.test.com'>#{color}</a>"
end.join(", ")
p "The code ==>#{tags}<==="
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...