通过支持哈希映射查询

时间:2017-04-09 18:24:42

标签: ruby

我需要在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}

1 个答案:

答案 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]]