如何在Ruby中分离数组?

时间:2012-08-14 19:07:42

标签: ruby

好的,我有一个数组:

numbers = ["2", "3", "4", "5"]

我需要将数组拆分为两个带条件的数组

numbers.reject!{|x| x > 4 }

我需要的是一个数组numbers包含numbers = ["5"],另一个数组包含拒绝rejects = ["2", "3", "4"]

我该怎么做? ......循环似乎很容易,但有没有办法在一个班轮中做到这一点?

2 个答案:

答案 0 :(得分:6)

查看Enumerable#partition

arr = ["2", "3", "4", "5"]
numbers, rejects = arr.partition{ |x| x.to_i > 4 }
 # numbers = ["5"]
 # rejects = ["2", "3", "4"]

答案 1 :(得分:1)

numbers = [2, 3, 4, 5]

n_gt_four = numbers.select{|n| n > 4}
n_all_else = numbers - n_gt_four

puts "Original array: " + numbers.join(", ")
puts "Numbers > 4: " + n_gt_four.join(", ")
puts "All else: " + n_all_else.join(", ")

输出:

   Original array: 2, 3, 4, 5
   Numbers > 4: 5
   All else: 2, 3, 4