迭代两个数组的优雅方式

时间:2014-09-09 20:53:30

标签: arrays ruby

我有两个数组:

a = [1, 2 ,3]
b = [4, 5, 5]

我想迭代两个数组的所有元素。这样做的一种方法如下:

(a + b).each do |element|
  puts element
end

这会从ab创建第三个数组,然后迭代它。是否有更优雅/ Rubyist方法来做同样的事情?

1 个答案:

答案 0 :(得分:1)

如果您只想打印两个阵列中的每个对象:

puts a, b

如果您正在寻找更一般场景的解决方案,则无法避免创建第三个阵列,但除非分配给对象,否则此第三个阵列将消失。 (如果您致电third_arr = a + b。)

如果性能存在问题,则可以避免迭代大型数组。假设ab的长度各为100,这意味着“第三个数组”将包含200个元素。您可以按每个单独的数组拆分工作,同时保持代码DRY。

[a, b].each do |arr|
  arr.each do |item|
    # ...
  end
end