我有散列值的兩個陣列紅寶石:遍歷2個陣列的散列,並創建陣列
rtg
連鍵id, position_id, valid_from, valid_to
inv
連鍵id, position_id, date
實例是這樣的陣列:
rtg=[{:id=>7, :position_id=>3, :valid_from=>Tue, 05 Sep 2017 10:00:00 EEST +03:00, :valid_to=>Tue, 05 Sep 2017 10:59:59 EEST +03:00},
{:id=>6, :position_id=>3, :valid_from=>Mon, 04 Sep 2017 22:00:00 EEST +03:00, :valid_to=>Mon, 04 Sep 2017 23:59:59 EEST +03:00},
{:id=>1, :position_id=>2, :valid_from=>Mon, 04 Sep 2017 07:00:00 EEST +03:00, :valid_to=>Mon, 04 Sep 2017 08:00:00 EEST +03:00}]
inv=[{:id=>23, :position_id=>3, :date=>Tue, 05 Sep 2017 10:10:00 EEST +03:00},
{:id=>17, :position_id=>3, :date=>Mon, 04 Sep 2017 22:45:00 EEST +03:00},
{:id=>11, :position_id=>3, :date=>Mon, 04 Sep 2017 07:20:00 EEST +03:00}]
我需要創建數組的數組與來自雙和inv
散列其中
1)position_id
匹配和
2)從inv
date
處於valid_from
& valid_to
憤怒從rtg
我做如何做這個,請嗎?
在我的例子上述結果將是: result = [[7,23],[6,17]]
謝謝。我調整了@Nimish Gupta回答'find'方法而不是'find_by' +我必須做'庫存[:position_id]'等等,就像你這樣做。你認爲如果我有數千個項目需要迭代,你的代碼可能會有性能提升嗎? – matiss
@matiss因爲你需要比較每個'rtg'項目與每個'inv'(即_O(n^2)_),所以性能會** **(即需要更多時間執行)數組越來越大。 – Gerry
當然,如果數組增長,迭代性能會降低。我在想更多關於'each_with_object'方法。無論如何,你的代碼很好,謝謝! – matiss