मैं ज़िप कोड की तुलना कर रहा हूं।दो सरणी की सामग्री की तुलना कैसे करें?
ZIP_MORRIS
ZIP_UNION
ZIP_ESSEX
मैं एक उपयोगकर्ता एक वस्तु की श्रेणी में है अगर देखना चाहते हैं, सभी ज़िप उन में से एक में शामिल:
मैं ज़िप कोड के तीन स्थिरांक की है।
ZIP_UNION.sort{|x,y| y <=> x} <=> Email.find(3).distributions.map(&:zip_code).uniq.compact.sort{|x,y| y <=> x}
लेकिन दुर्भाग्य से, यह सिर्फ सभी ज़िप कोड नक्शे, तो एक अलग काउंटी में एक अतिरिक्त जिप चयन करने के लिए अगर मैं थे, तो यह ठीक से उनकी तुलना नहीं होता:
मैं इस कोशिश की।
मुझे लगता है कि सबसे अच्छा समाधान उपयोगकर्ता जेनरेटेड ज़िप के मानों की तुलना करना होगा, और देखें कि एक ज़िप_COUNTY में सभी ज़िपों को सरणी के अंदर मौजूद हैं या नहीं।
कुछ प्रकार के इटरेटर जो सभी ज़िपों के माध्यम से चलेंगे और यह सुनिश्चित करेंगे कि उपयोगकर्ता का ज़िप एक ज़िप समूह में प्रत्येक ज़िप को शामिल न करे या इसमें शामिल न हो।
कोई विचार?
सरलता केक लेता है। – Trip
@ टिप: सरलता से बाहर सरलता। हमारे ऐप में मुझे अक्सर कई सौ हजार तत्वों के आईडी सरणी के साथ कुछ समान करना होता है। अन्य सभी विधियां बहुत धीमी साबित हुईं। –
यह समाधान @ ट्रिप के प्रश्न में विशिष्ट उदाहरण के लिए काम करता है, लेकिन सामान्य मामले के लिए नहीं। आपको दो बार अंतर ऑपरेशन करने की आवश्यकता होगी: # जहां तत्वों की संख्या से मेल नहीं खाती है [1] - [1,2] # => [] [1,2] - [1] # => [2] # जहां तत्व [1,1,2] - [2,2,1] # => [] [2,2,1] - [1,1,2] # => [] – bobics