如何通过从另一个数组中分配随机值将数组转换为哈希?

Gre*_*gle 1 ruby

我有一个数组names,包含12个名字.

我有另一个数组weights,包含12个数字.

我想创建一个散列,其中键是名称,值是权重.

权重数字是预先确定的(它们应该总是,例如,200,150和180),但每次运行程序时都应将它们分配给随机名称.

例如,如果我使用数组names = ['homer', 'marge', 'maggie']weights = [265, 140, 10],我可以运行该程序,并得到{homer: 140, marge: 265, maggie: 10},然后重新运行它,并得到{homer: 10, marge: 140, maggie: 265}.

这样做的明智之举是什么?

Pic*_*olo 5

另一个答案几乎得到了它,但它并没有weights先将数组洗牌,所以它总会返回相同的哈希值.

但是,这将按预期工作:

names.zip(weights.shuffle).to_h
Run Code Online (Sandbox Code Playgroud)