来自2个数组的新哈希:Arr1 = Key,Arr2 =其中Arr2是随机的值

时间:2016-10-19 22:48:25

标签: arrays ruby hash

新手在这里。抓我的头。

我有2个阵列:

arr1 = ["a", "b", "c", "d"]
arr2 = ["1", "2", "3", "4"]

我想使用arr1元素作为键和arr2元素作为值来创建哈希值。我希望arr2(或arr1,并不重要)是随机的。

结果示例:

hash = {"a"=>"3", "b"=>"1", "c"=>"2", "d"=>"4"}

2 个答案:

答案 0 :(得分:3)

所以有很多方法可以做到这一点,但我会以我最喜欢的方式做到这一点

arr1.zip(arr2.shuffle).to_h

这会随机播放(随机)arr2,以便arr2成为['3', '1', '2', '4'](例如),然后将arr1arr2一起拉入多维数组{{ 1}}。然后[['a', '3'], ['b', '1'], ['c', '2'], ['d', '4']]将其转换为哈希,第一个元素作为键,第二个元素作为值。

答案 1 :(得分:0)

我很确定在S.O.回答了类似的问题。之前,like here

无论如何,你可以这样做:

> hash = Hash[arr1.zip(arr2.shuffle)]
=> {"a"=>"1", "b"=>"2", "c"=>"3", "d"=>"4"}

提示:不要忘记大致了解基本结构的文档。