2011-02-15 77 views

回答

51

您可以使用new_array = array.reject {|x| x < 3}reject返回一个新数组)或array.reject! {|x| x < 3}reject!又名delete_if修改到位数组)。

还有的(有点多见)select方法,其作用就像除了你指定要保留的元素,不要拒绝他们的条件reject(即摆脱元素小于3,你会使用new_array = array.select {|x| x >= 3} )。

+1

谢谢你的技术;) – Chan 2011-02-15 16:19:09

8
a = [ "a", "b", "c" ] 
    a.delete_if {|x| x >= "b" } #=> ["a"] 
9

也许值得指出的是

array.reject! {|x| x < 3} 

array.delete_if {|x| x < 3} 

是相同的,但

array.reject {|x| x < 3} 

仍然会返回相同的结果,但不能更改 “阵列” 。

0

这对数字和字母按字母顺序正常工作。他们的价值观进行比较,如果条件改变了会怎样?

array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", "Uses", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."] 

我们需要删除所有elemetns后的 “使用” 值 例如:

array = ["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg"] 

所以,这desition不工作(它只是删除一个元素):

array.delete_if {|x| x >= "Uses" } 
["Type", ": Jointed", "Axes", ": 6", "Reach", ": 951 mm", "Capacity", ": 6 Kg", ": ", "Arc welding, material handling, machine loading, application", "This particular unit is in excellent condition with under 700 hours."] 
相关问题