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]]
上記のチャンク スニペットの表現力を保持するこれを取得するための解決策はありますか?
前もって感謝します。