我有一系列房间:rooms_array = [room1...roomn]
,每个房间都是一个哈希,各自有详细信息。每个房间哈希都有一个优惠哈希。
room1 = {...., offers=> {...},...}
现在我有另一组优惠哈希。
avg_array = [[{offer1},{offer2}],[{offer4},{offer3}],....]
两个散列的长度相同,因此第一个avg_array数组用于room1,第二个用于room2,依此类推......
我的问题是如何将每个avg_array数组添加到rooms_array的相应商品哈希中。
我的尝试:
_rooms.values.map do |room|
if room[:offers].count > 1
i=0
room[:offers] = rooms_hash[i]
i = i + 1
end
end
答案 0 :(得分:3)
看起来您可以使用Array.zip
rooms.zip(avg_array).map do |room,avg|
room[:offers] = avg
room
end
如果要附加到现有数组:
rooms.zip(avg_array).map do |room,avg|
room[:offers] ||= []
room[:offers].concat avg
room
end
请参阅: What's the 'Ruby way' to iterate over two arrays at once