Ich suche ein select
, dass „Kurzschluss“, sobald er eine bestimmte Anzahl von Elementen zurückgegeben:Builtin Ruby oder ActiveSupport-Funktion für "wählen Sie die ersten n Elemente, die ein Prädikat erfüllen"?
>>> [1, 2, 3, 4, 5].select_first(1) { |x| x.odd? }
[1]
>>> [1, 2, 3, 4, 5].select_first(2) { |x| x.odd? }
[1, 3]
>>> [1, 2, 3, 4, 5].select_first(1000) { |x| x.odd? }
[1, 3, 5]
Gibt es eine Bibliotheksfunktion, entweder in Kern oder in Active, das dies tut? Es ist einfach, meine eigenen zu rollen, aber ich dachte, ich würde nachsehen.
Beachten Sie, dass ich nicht select { ... }.take(n)
möchte, weil der Block Nebenwirkungen haben kann.
Welche Nebenwirkungen sind Sorgen um dich? –