有一个字符串数组,我希望通过迭代每个字符串元素并将每个字符串转换为符号并将每个符号推入名为symbols的数组中,将其转换为符号数组。
strings = ["A", "B", "C", "D", "E", "F", "G"] #array of strings
symbols = [strings.each{ |x| "x".to_sym.push }] #array of symbols
我上面写的代码和问题是推送元素。 请告诉我推送元素的正确方法。
答案 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