コレクションをループする際に、コレクションから次のレコードを取得するにはどうすればよいですか?例えば。ruby Datamapper:コレクションから次のレコードを取得する
for record in collection
current_value = record.value
next_value = record.next.value #==> Would like this!
# more stuff with record
end
コレクションをループする際に、コレクションから次のレコードを取得するにはどうすればよいですか?例えば。ruby Datamapper:コレクションから次のレコードを取得する
for record in collection
current_value = record.value
next_value = record.next.value #==> Would like this!
# more stuff with record
end
あなたはそのようにそれを行うことができるようになります。
collection.each_with_index do |record, index|
current_value = record.value
next_value = collection[index+1].value
# more stuff
end
は(DataMapper::Collection
がEnumerable
を含ん)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
もあります。これは、コレクションから重複しないグループを生成します。
これはうまくいきます。しかし、コレクションの最後の要素は決して 'a [0]'に割り当てられません。 – fatnic
コレクションの最後の項目がこのコードを破ります。もちろん、これは元々の質問でも同じですが、とにかくでした。 –