私は配列を持っています:
arr = [1,1,2,3,5,8,13,21,34]
同じ方法で配列をフィルタリングしたいselect
だけでなく、条件を満たさないすべての要素を個別に収集したいと思います。
[evens, odds] = arr.split_filter {|p| p % 2 == 0}
# evens = [2, 8, 34]
# odds = [1, 1, 3, 5, 13, 21]
私はそれをできた
evens = arr.select {|p| p % 2 == 0}
odds = arr.select {|p| p % 2 != 0}
しかし、それは効率が悪いようです。のように機能する関数を知っている人はいますsplit_filter
か?