Lets nehme ich das Follow-Array haben:erstellen zwei Arrays auf, was eine Bedingung erfüllen und die diff
a = [1,2,3]
Ich will es von ihm in zwei Reihen spalten, eine mit Positionen, für die eine Bedingung ist, Wahr, und andere, für die die gleiche Bedingung falsch ist:
b, c = a.split_in_two_arrays_or_something_like_that {|x| x == 3}
#=> b = [3]
#=> c = [1,2]
Wie kann ich das in Rubin tun? Ich möchte nicht Code mit etwas wie wiederholen:
b = a.reject {|x| x == 3}
c = a.reject {|x| x != 3}
Noch Iterate über das Array zweimal.
Gibt es eine Methode, die mir etwas anders als das modifizierte Array zurückgeben? Zum Beispiel funktioniert delete_if
, wenn es die gelöschten Elemente zurückgeben würde, aber das ursprüngliche Array hätte dasselbe beibehalten, aber es funktioniert nicht so.