如何填充字符串数组以避免嵌套循环

pra*_*oga 1 ruby arrays foreach loops ruby-on-rails

我必须根据三组不同的数组对象准备字符串数组

object1 = ['a', 'b', 'c']
object2 = [1, 2, 3, 4]
object3 = ['xx', 'yy']
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用嵌套循环

result = []
object1.each do |ob1|
  object2.each do |ob2|
    object3.each do |ob3|
      result << "#{ob1}-#{ob2}-#{ob3}"
    end
  end
end

result
=> ["a-1-xx", "a-1-yy", "a-2-xx", .... , "c-3-xx", "c-3-yy", "c-4-xx", "c-4-yy"]
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法以另一种方式填充数据以避免嵌套循环

spi*_*ann 7

你更喜欢这个吗?

object1.product(object2, object3).map { |e| e.join('-') }
Run Code Online (Sandbox Code Playgroud)

  • 当然,它仍然是完全循环的循环.我想,你从根本上无法避免这种情况. (2认同)