तो अपनी समस्याओं मूल हैश और दूसरा एक दोनों डुप्लिकेट चाबी हो सकता है और आप नहीं करना चाहते हैं वह यह है कि किसी भी दिशा में ऊपर लिख, आप टक्कर की जांच किसी तरह का और हैंडलिंग के साथ एक सरल मैनुअल मर्ज के लिए जाने के लिए हो सकता है:
hash2.each_key do |key|
if (hash1.has_key?(key))
hash1[ "hash2-originated-#{key}" ] = hash2[key]
else
hash1[key]=hash2[key]
end
end
जाहिर है, यह बहुत ही अल्पविकसित है और मानता है कि hash1 किसी भी कुंजी "hash2 बुलाया नहीं है -ऑर्गिनेटेड-जो भी हो "- आप कुंजी को केवल एक संख्या जोड़कर बेहतर हो सकते हैं, इसलिए यह कुंजी 1, की 2 और तब तक बन जाता है जब तक आप उस पर हिट नहीं करते जो पहले से हैश 1 में नहीं है। इसके अलावा, मैंने कुछ महीनों के लिए कोई रूबी नहीं की है, इसलिए शायद यह वाक्य रचनात्मक रूप से सही नहीं है, लेकिन आपको जिस्ट प्राप्त करने में सक्षम होना चाहिए।
वैकल्पिक रूप से कुंजी के मान को सरणी के रूप में फिर से परिभाषित करें ताकि हैश 1 [कुंजी] हैश 1 से मूल मान और हैश 2 से मान लौटाता है। निर्भर करता है कि आप वास्तव में अपने परिणाम क्या चाहते हैं।
तुम सच मतलब है सरणियों (जैसे: [ 'एक', 'बी', 'सी']) या हैश (जैसे: { 'एक' => 1, 'बी' => 2, 'ग '=> 3})? –
क्षमा करें, मैं हैश के बारे में बात कर रहा था :) –