不使用`transpose`转换数组

cec*_*ode -2 ruby arrays

寻找一种方法来获取swingers下面的阵列并交换所有伙伴,同时保持男/女配对.我觉得令人困惑的是如何迭代二维数组

实施Swingers游戏.方法swingers应该采用一对数组的数组并返回相同类型的数据结构,并将这些数据混合起来.假设情侣阵列中的第一个项目是男性,第二个项目是女性.不要将一个人与自己性别的人配对(抱歉毁了你的乐趣).该程序的示例运行:

swingers([
  ["Clyde", "Bonnie"],
  ["Paris", "Helen"],
  ["Romeo", "Juliet"]
])
Run Code Online (Sandbox Code Playgroud)

Chr*_*ung 5

当然,你根本不需要使用transpose:

def swingers(pairs)
  gents = pairs.map(&:first)
  ladies = pairs.map(&:last)
  gents.shuffle.zip(ladies.shuffle)
end
Run Code Online (Sandbox Code Playgroud)