2015-08-19 143 views
2

我在HAML中有一個數組arr,它位於循環內部。從字符串中刪除字母,只保留數字

- item.each do |grp, arr = []| 
    - grp.section.each {|abc| arr.push(abc.values_with_units) } 

對於每次迭代,它們的值和單位都會改變。它可能是["23 mm", "34 mm", "56 mm"],在下一次迭代中它可能是["25 km/s m", "32 km/s m", "12 km/s m"]。我想擺脫單位,並保留僅值:在案例1 [23,34,56],並在案件2 [25, 32, 12]

我如何在Ruby中實現這一點?

+0

試過並且不適用於陣列。謝謝 – vanga

回答

0

用途:

array = ["23 mm", "34 mm", "56 mm"] 
array.select {|a| a[/\d+/]}.map(&:to_i) 
# > [23, 34, 56] 

array = ["25 km/s m", "32 km/s m", "12 km/s m"] 
array.select {|a| a[/\d+/]}.map(&:to_i) 
# > [25, 32, 12] 
1

to_i號後忽略一切,所以你可以做到以下幾點。

array = ['23 mm', '34 mm', '56 mm'] 
array.map(&:to_i) 
# [23, 34, 56] 

array = ['25 km/s m', '32 km/s m', '12 km/s m'] 
array.map(&:to_i) 
# [25, 32, 12] 
相關問題