假设我有:
a = [['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h'], ['i', 'j'], ['k']]
然后,我想加入PARAY,但保留余数元素不变,如下所示:
[["a_b", "c_d", "e"], ["f_g", "h"], ["i_j"], ["k"]]
我拥有的(产生结果的)最接近的是:
r = a.map { |sl|
tmp = []
sl.each_slice(2) { |a, b| tmp << (b.nil? ? a : "#{a}_#{b}") }
tmp
}
或者:
r = a.map { |sl|
tmp = []
sl.each_slice(2) { |a, b| tmp << (b.nil? ? a : [a,b].join("_")) }
tmp
}
有没有一种更干净的方法来做这件事?