我有一种情况,我想将初始化的数组nils
分成空段和包含连续数字运行的段。
我发现高阶chunk
函数 为Array
这个问题提供了一个优雅的解决方案:
<< [nil,nil,1,2,nil,3].chunk { |e| !e.nil? }.each { |e| p e }
>> [false, [nil, nil]]
>> [true, [1, 2]]
>> [false, [nil]]
>> [true, [3]]
但是,假设我希望输出还包含每个块中原始数组的起始索引,即将上面的输出增加为:
>> [false, 0, [nil, nil]]
>> [true, 2, [1, 2]]
>> [false, 4, [nil]]
>> [true, 5, [3]]
是否有一种解决方案可以保留上述块片段的表现力?
提前致谢。