Ruby on rails 将Ruby.map的结果附加到数组中?

Ruby on rails 将Ruby.map的结果附加到数组中?,ruby-on-rails,arrays,ruby,Ruby On Rails,Arrays,Ruby,我正在尝试构建一个items数组。我在一个CSV文件中循环,当我找到匹配项时,会展开项目列表。见下面的代码: items = Array.new csv.each_with_index do |row,i| items << ["a","b","c"].map {|x| row.to_s.gsub(/XXXXXXXXXX/, x.downcase)} end puts items.length items=Array.new csv.each_with_index do|行,

我正在尝试构建一个items数组。我在一个CSV文件中循环,当我找到匹配项时,会展开项目列表。见下面的代码:

items = Array.new
csv.each_with_index do |row,i|
   items << ["a","b","c"].map {|x| row.to_s.gsub(/XXXXXXXXXX/, x.downcase)}
end
puts items.length
items=Array.new
csv.each_with_index do|行,i|

项目是的,您在这里做得不正确:

items << ["a","b","c"].map

是的,您在这里做得不正确:

items << ["a","b","c"].map

根据经验,如果您:

  • 初始化空数组
  • 迭代元素,修改数组
  • 在末尾返回数组
有一个Ruby方法可以帮助您

在这种情况下,您可以使用和:


根据经验,如果您:

  • 初始化空数组
  • 迭代元素,修改数组
  • 在末尾返回数组
有一个Ruby方法可以帮助您

在这种情况下,您可以使用和:


完美的比你强。我不知道
*
这到底是做什么的?时间一过,我就接受,stackoverflow让meit有一些用途,请参阅。在本例中,
push
接受顺序参数,因此
push(:a,:b)==push(*[:a,:b])==push(*%i{ab})
。最后一个使用速记来构造符号数组。还有
array#concat
arr.concat%w[abc]。map{x|x}
完美!比你强。我不知道
*
这到底是做什么的?时间一过,我就接受,stackoverflow让meit有一些用途,请参阅。在本例中,
push
接受顺序参数,因此
push(:a,:b)==push(*[:a,:b])==push(*%i{ab})
。最后一个使用速记来构造符号数组。还有
array#concat
arr.concat%w[abc]。map{x | x}
在您的示例中不使用
i
。这是因为这只是一个简单的示例吗?请显示您当前的结果以及您希望得到的结果。您的示例中没有使用
i
。这是因为这只是一个简单的例子吗?显示您当前的结果以及您希望得到的结果。
arr = []
arr.push *["a","b","c"].map { |x| x }
arr
# => ["a", "b", "c"]
csv = %w(1;2;3 4;5;6 7;8;9)

items = csv.flat_map.with_index do |row,i|
   ["a","b","c"].map {|x| row.to_s.gsub(/[159]/, x.downcase)}
end

p items
#=> ["a;2;3", "b;2;3", "c;2;3", "4;a;6", "4;b;6", "4;c;6", "7;8;a", "7;8;b", "7;8;c"]