如何在Ruby中推送数组中的元素?

时间:2013-01-21 15:55:21

标签: ruby-on-rails ruby

有一个字符串数组,我希望通过迭代每个字符串元素并将每个字符串转换为符号并将每个符号推入​​名为symbols的数组中,将其转换为符号数组。

strings = ["A", "B", "C", "D", "E", "F", "G"]  #array of strings

symbols = [strings.each{ |x| "x".to_sym.push }]  #array of symbols

我上面写的代码和问题是推送元素。 请告诉我推送元素的正确方法。

5 个答案:

答案 0 :(得分:5)

改为使用Array#map:

symbols = strings.map { |x| x.to_sym }  # array of symbols

答案 1 :(得分:2)

您不需要在这里推送,需要collect

 symbols = ["A", "B", "C", "D", "E", "F", "G"].collect{|x| x.to_sym}

这将实现你想要的目标。

答案 2 :(得分:2)

与某些海报建议一样,您可以将Array#map用于此目的。由于您需要简单的转换,您甚至可以使用to_proc表示法来简化:

symbols = array_of_strings.map(&:to_sym)

答案 3 :(得分:1)

我认为这是您正在寻找的代码块:

strings = ["A", "B", "C", "D", "E", "F", "G"]  //array of strings
symbols = Array.new

strings.each do |x|
    symbols << x.to_sym
end

答案 4 :(得分:0)

这就是你所需要的:

strings.map &:to_sym