我有以下两个数组:
m1 = ["a", "b", "c"]
m2 = ["yes", "no"]
我希望得到以下结果:
expected-output = [["a", "yes"], ["a", "no"],
["b", "yes"], ["b", "no"],
["c", "yes"], ["c", "no"]]
这是我尝试的代码:
array1 = []
array2 = []
m2.map { |e| m1.map {|i| array1 << i and array2 << e }}
newArray = array1.zip(array2)
print newArray
但是我的结果顺序不正确:
[["a", "yes"], ["b", "yes"],
["c", "yes"], ["a", "no"],
["b", "no"], ["c", "no"]]
PS:我已经使用了排序方法,但没有用。
答案 0 :(得分:2)
为此,您必须使用Ruby上可用的Product函数。
https://apidock.com/ruby/Array/product
> m1 = ["a", "b", "c"]
=> ["a", "b", "c"]
> m2 = ["yes", "no"]
=> ["yes", "no"]
> m1.product(m2)
=> [["a", "yes"], ["a", "no"], ["b", "yes"], ["b", "no"], ["c", "yes"], ["c", "no"]]