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

时间:2015-03-18 03:47:03

标签: 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}

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

1 个答案:

答案 0 :(得分:5)

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

但是,这将按预期工作:

names.zip(weights.shuffle).to_h