2012-03-14 10 views

答えて

1

あなたはそのようにそれを行うことができるようになります。

collection.each_with_index do |record, index| 
    current_value = record.value 
    next_value = collection[index+1].value 
    # more stuff 
end 
+0

コレクションの最後の項目がこのコードを破ります。もちろん、これは元々の質問でも同じですが、とにかくでした。 –

1

は(DataMapper::CollectionEnumerableを含ん)Enumerable#each_consを見てください:

collection.each_cons(2) do |a| 
    #here a is a 2 element array: 
    current_value = a[0] 
    next_value = a[1] #(or just use the array elements directly) 

end 

each_consを使用すると、あなたが持っていないことを意味コレクションの最後の要素をチェックすることを心配してください。

また、同様のeach_sliceもあります。これは、コレクションから重複しないグループを生成します。

+0

これはうまくいきます。しかし、コレクションの最後の要素は決して 'a [0]'に割り当てられません。 – fatnic