如何使用Ruby集合函数合并空行中的值?

Ton*_*ino 3 ruby collections select filter

我有一个集合:

a = [[1, "a"], [nil, "b"], [nil, "c"], [2, "a"], [nil, "b"]]

[[1, "a"], 
 [nil, "b"], 
 [nil, "c"], 
 [2, "a"], 
 [nil, "b"]] 
Run Code Online (Sandbox Code Playgroud)

我想得到:

[[1, "abc"],   
 [2, "ab"]]
Run Code Online (Sandbox Code Playgroud)

在Ruby中实现这一目标的正确方法是什么?如何有效地使用ruby内置集合函数?

saw*_*awa 5

a
.slice_before{|k, _| k}
.map{|a| [a.first.first, a.map(&:last).join]}
# => [[1, "abc"], [2, "ab"]]
Run Code Online (Sandbox Code Playgroud)

要么

a
.slice_before{|k, _| k}
.map{|a| a = a.dup; [a.first.shift, a.join]}
# => [[1, "abc"], [2, "ab"]]
Run Code Online (Sandbox Code Playgroud)