我想取一个链接列表,并使用交替连接将它们分开。
我有:
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>")
=> "1t2<br>3t4<br>5t6"
是否有办法在单行中完成此操作?我知道我可以用Proc
或block调用来做,但我希望用更简洁的方法。似乎总有一些Array
或Enumerable
方法我还没有了解,但我还没有发现任何东西。
您可以在each_slice
之后使用map
,而不是使用<<
:
[1,2,3,4,5,6].each_slice(2).map {|a| a.join("t")}.join("<br>")
一行:
[1,2,3,4,5,6].each_slice(2).map{|d| d.join("t")}.join("<br/>")
tmp = [1,2,3,4,5,6].map(&:to_s)
tmp.map { |i| i.to_i % 2 == 1 ? "#{i}t" : "#{i}<br>" }.to_s