考虑我有2个阵列,
o = ["16", "16", "119"]
d = ["97", "119", "97"]
需要的输出是这样的:
{16=>[97, 119], 119=>[97]}
我尝试使用.zip
,但它没有用。我该怎么做?
答案 0 :(得分:4)
首先想到的是:
result = Hash.new { |h, k| h[k] = [] }
o.zip(d) { |a, b| result[a] << b }
result #=> {"16"=>["97", "119"], "119"=>["97"]}
虽然可能有更好的方法,但这应该让你思考。
答案 1 :(得分:4)
您可以链接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]}
答案 2 :(得分:3)
self.endDate = endDate.addingTimeInterval(difference!)