हो सकता है मेरे पास ऑब्जेक्ट्स की एक सरणी है जिसे मुझे एक स्थिति विशेषता द्वारा क्रमबद्ध करने की आवश्यकता है जो एक पूर्णांक या शून्य हो सकता है, और मुझे उन ऑब्जेक्ट्स की आवश्यकता है जिनके पास शून्य स्थिति है सरणी के अंत में हो। अब, मैं स्थिति को शून्य के बजाए कुछ मूल्य वापस करने के लिए मजबूर कर सकता हूं ताकि array.sort विफल न हो, लेकिन यदि मैं 0 को इस डिफ़ॉल्ट के रूप में उपयोग करता हूं, तो यह उन वस्तुओं को क्रम के सामने रखता है। इस तरह से करने का सबसे अच्छा तरीका क्या है? क्या मुझे सिर्फ कुछ हद तक नील मानों को कुछ हास्यास्पद उच्च संख्या में सेट करना चाहिए जो 'लगभग' हमेशा अंत में होने की गारंटी है? या क्या कोई अन्य तरीका है कि मैं array.sort विधि को सरणी के अंत में शून्य विशेषता ऑब्जेक्ट्स डालने का कारण बन सकता हूं? अबएक विशेषता द्वारा ऑब्जेक्ट्स की रूबी सरणी को सॉर्ट करना जो
class Parent
def sorted_children
children.sort{|a, b| a.position <=> b.position}
end
end
class Child
def position
category ? category.position : #what should the else be??
end
end
, अगर मैं 1000000000 तरह 'शेष' कुछ करना है, तो यह सबसे अधिक संभावना वाला उन्हें सरणी के अंत में डाल दिया है, लेकिन यह है के रूप में मैं इस समाधान पसंद नहीं है: कोड इस तरह दिखता है मनमाने ढंग से
मैं इस पर कुछ हद तक iffy होगा क्योंकि यह असंगत होने के बिना किसी और चीज को सॉर्ट करने की आपकी क्षमता को सीमित करता है। ऐसा कहा जा रहा है, यदि स्थिति माता-पिता के लिए प्राकृतिक प्रकार का क्रम है, तो यह इस तरह से करने के लिए उचित मात्रा में समझ में आता है। – RHSeeger
@RHSeeger यदि आप संपादन इतिहास की जांच करते हैं, तो मैंने मूल रूप से विभिन्न मानदंडों द्वारा क्रमबद्ध करने की आवश्यकता होने पर क्या करना है, इसके बारे में एक चेतावनी जोड़ दी थी, लेकिन यह भ्रमित रूप से शब्द था और मुझे नहीं लगता था कि इसमें बहुत कुछ जोड़ा गया है। असल में, आप जो भी चाहें नामित अन्य तुलना विधियों को जोड़ सकते हैं, और यदि आपको उन पर सॉर्ट करने की आवश्यकता है, तो इसे मूल उदाहरण की तरह ब्लॉक में करें। –