好的,我有一个数组:
numbers = ["2", "3", "4", "5"]
我需要将数组拆分为两个带条件的数组
numbers.reject!{|x| x > 4 }
我需要的是一个数组numbers
包含numbers = ["5"]
,另一个数组包含拒绝rejects = ["2", "3", "4"]
我该怎么做? ......循环似乎很容易,但有没有办法在一个班轮中做到这一点?
答案 0 :(得分:6)
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