我想获取链接列表并使用交替连接拆分它们。
这就是我所拥有的:
ruby-1.9.2-p290 :011 > tmp = [1,2,3,4,5,6].map(&:to_s)
=> ["1", "2", "3", "4", "5", "6"]
ruby-1.9.2-p290 :012 > tmp2 = []
=> []
ruby-1.9.2-p290 :013 > tmp.each_slice(2) {|a| tmp2 << a.join("\t")}
=> nil
ruby-1.9.2-p290 :014 > tmp2.join("<br\>")
=> "1\t2<br>3\t4<br>5\t6"
有没有办法在一行中完成这项工作?我知道我可以用Proc
或阻止电话来做,但我希望能有更清洁的东西。似乎总有一些Array
或Enumerable
方法我尚未了解,但我还没有找到任何东西。
答案 0 :(得分:3)
您可以在map
之后使用each_slice
,而不是使用<<
:
[1,2,3,4,5,6].each_slice(2).map {|a| a.join("\t")}.join("<br\>")
答案 1 :(得分:2)
一个班轮:
[1,2,3,4,5,6].each_slice(2).map{|d| d.join("\t")}.join("<br/>")
答案 2 :(得分:0)
tmp = [1,2,3,4,5,6].map(&:to_s)
tmp.map { |i| i.to_i % 2 == 1 ? "#{i}\t" : "#{i}<br>" }.to_s