Ruby on rails 如何在Ruby中推送数组中的元素?
这里有一个字符串数组,我想通过迭代每个字符串元素,将每个字符串转换为符号,并将每个符号推入名为symbols的数组,将其转换为符号数组Ruby on rails 如何在Ruby中推送数组中的元素?,ruby-on-rails,ruby,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 我已经写了上面的代码,问题是推送元素。 请告诉我推送元素的正确方法。使用数组#映射: symbo
strings = ["A", "B", "C", "D", "E", "F", "G"] #array of strings
symbols = [strings.each{ |x| "x".to_sym.push }] #array of symbols
我已经写了上面的代码,问题是推送元素。
请告诉我推送元素的正确方法。使用数组#映射:
symbols = strings.map { |x| x.to_sym } # array of symbols
您不需要推到这里,您需要
收集
symbols = ["A", "B", "C", "D", "E", "F", "G"].collect{|x| x.to_sym}
这将实现您想要的功能。我认为这就是您正在寻找的代码块:
strings = ["A", "B", "C", "D", "E", "F", "G"] //array of strings
symbols = Array.new
strings.each do |x|
symbols << x.to_sym
end
strings=[“A”、“B”、“C”、“D”、“E”、“F”、“G”]//字符串数组
symbols=Array.new
字符串。每个do | x|
符号就像一些海报建议的那样,您可以使用Array#map
来实现此目的。由于需要简单的转换,为了简洁起见,您甚至可以使用to_proc
符号:
symbols = array_of_strings.map(&:to_sym)
这就是您所需要的:
strings.map &:to_sym
这并不难,但我可以问一下原因吗?符号只是不可变的字符串……Ruby注释不是以/
开头的,因此这些示例不起作用。另外,这是一个问题,只要看几秒钟的文档就可以解决这个问题。谁否决了这个问题,这是一个正确的答案。事实上,是的。现在。除了非ruby注释。啊,是的,你是正确的,没有注意到。你也可以这样使用map
方法:strings.map(&:to_-sym)
@AshishKumar,但前提是你是ruby 1.9.3或>。()虽然您的解决方案符合OP的要求,但它不是解决此问题的ruby方法。@samuil这是正确的,但请注意,一般认为,否决答案的唯一原因是a)如果它实际上没有解决问题,或者b)如果它是一种糟糕的编码实践。这个答案不是最好的方法,但我个人并不认为它是可怕的。代码是不正确的(因为原来的评论),我认为这是非常有害的红宝石新手,以轻松的方式处理简单的任务(不可怕,你是对的)。你可能是对的,它不应该被否决。对不起,我没有看到@Michaels的答案,我也有相同的代码,它可以工作。既然你先发布了,你就赢了:D。(我收回我的答案)