假设我有两个阵列,
o = ["16", "16", "119"]
d = ["97", "119", "97"]
所需的输出如下:
{16=>[97, 119], 119=>[97]}
我试着用
.zip
但没用。我该怎么做? 最佳答案
您可以链接group_by
和with_index
将d
中的元素按o
中的相应元素分组:
d.group_by.with_index { |_, i| o[i] }
#=> {"16"=>["97", "119"], "119"=>["97"]}
要获取整数,必须添加一些
to_i
调用:d.map(&:to_i).group_by.with_index { |_, i| o[i].to_i }
#=> {16=>[97, 119], 119=>[97]}