2015-11-20 88 views

回答

2
x = ["1","2","3","4"] 
x.map(&:to_i) 
1

使用mapmap!to_i

> a = ["1","2","3","4"] 
> a.map(&:to_i) 
#=> [1, 2, 3, 4] 
> a 
#=> ["1", "2", "3", "4"] 

> a.map!(&:to_i) 
#=> [1, 2, 3, 4] 
> a 
#=> [1, 2, 3, 4] 

注:差異與map!之間mapmap方法將返回新數組,而map!方法將覆蓋原始數組。更多信息Refer Doc

1

你有一個數組,其中每個元素都是一個字符串,你想每個元素轉換爲整數

Ruby中有一些方法可以幫助Array#map成爲最方便的方法。

Map將一個塊作爲參數並針對數組中的每個元素運行它,並返回一個新的數組,其元素是每次轉換的結果。所以,如果你會做這樣的事情:

["1","2","3"].map do |n| 
    n.to_i 
end 

它會調用該塊(DO /結束之間的所有內容)一次每個元素,馬金ñ假設待轉化的元素的值。

你可以重寫上面的代碼段使用大括號,而不是DO /結束塊:

["1","2","3"].map { |n| n.to_i } 

或者更好的是,使用Ruby的&運營商直接調用#to_i:

["1","2","3"].map(&:to_i) 
0

感謝您的回覆。剛剛放棄,我錯誤地寫了問題。

本來應該是:

我有一個字符串:

a = "["1","2","3","4"]"

,我想返回一個數組:

a = [1,2,3,4]

我落得這樣做:

JSON.parse(a).map{|a| a.to_i})

+0

您可以編輯您的帖子。但我會建議創建一個新問題。但'a =「[」1「,」2「,」3「,」4「]」'不是字符串,它是一個語法錯誤。你的意思是'a =「[1,2,3,4]」'或'a ='[「1」,「2」,「3」,「4」]''? – knut