我需要在ruby中通过查询创建一个“复杂”组。我的记录有以下格式:
{[
value => {nil}
value => {nil}
value => {nil}
value => {4}
value => {0}
value => {7}
value => {nil}
value => {nil}
value => {nil}
value => {nil}
value => { 8]
value => { 90}
value => { 90}
value => { nil}
value => { nil}
]}
.
.
.
我需要通过neighboor分组nil。我怎么能得到它?在我的例子中,输出将是
#id value
value => {4}
value => {0}
value => {7}
#id value
value => { 8}
value => { 90}
value => { 90}
答案 0 :(得分:0)
在您的示例中,没有任何内容看起来像是有效的Ruby对象。
如果您可以使数据看起来像数组,则可以使用Enumerable#chunk
将连续的非零对象分组为子数组:
data = [nil, nil, nil, 4, 0, 7, nil, nil, nil, 8, 90, 90]
data.chunk{ |x| x.nil? }.reject{ |is_nil, _| is_nil }.map{ |_, group| group }
# [[4, 0, 7], [8, 90, 90]]