2015-06-03 14 views
9

में क्रमबद्ध सूची तत्वों में मेरे पास तारों की एक सूची है जिसे मैं दो तरीकों से आदेश देना चाहता हूं।एलिक्सीर लैंग

  1. वर्णक्रम
  2. स्ट्रिंग की लंबाई तक
+4

लूपिंग के बिना आपका क्या मतलब है? सॉर्टिंग ऑपरेशन को सूची के माध्यम से पार करने की आवश्यकता है। किसी भी मामले में, शायद Enum.sort/2 वह है जिसे आप ढूंढ रहे हैं? –

+0

@ जोसेवलिम आप सही हैं। मैंने सवाल संपादित किया ताकि यह गुमराह न हो। एनम मॉड्यूल की मुझे ज़रूरत है। क्या आप इसे उत्तर के रूप में पोस्ट कर सकते हैं? –

उत्तर

23

वर्णानुक्रम स्ट्रिंग की एक सूची सॉर्ट करने के लिए, तो आप सिर्फ Enum.sort/1 उपयोग कर सकते हैं, जो (जो तार के लिए वर्णमाला आदेश है) उनके डिफ़ॉल्ट आदेश से आइटम आदेश देगा।

iex> Enum.sort(["b", "aaa", "cc"]) 
["aaa", "b", "cc"] 

ऐसे स्ट्रिंग की लंबाई के रूप में एक अलग संपत्ति से ही सूची को क्रमबद्ध करने के लिए, आप Enum.sort_by/2, जो दूसरा तर्क के रूप में एक नक्शाकार समारोह लेता है का उपयोग कर सकते हैं। मान को प्रत्येक तत्व पर लागू इस फ़ंक्शन के परिणामस्वरूप क्रमबद्ध किया जाएगा।

iex> Enum.sort_by(["b", "aaa", "cc"], &String.length/1) 
["b", "cc", "aaa"] 
संबंधित मुद्दे