लाइनें सॉर्ट करें

एक लिस्ट को अल्फ़ाबेटिकली, न्यूमेरिकली, लंबाई के हिसाब से सॉर्ट करें, या रैंडमली शफ़ल करें। एसेंडिंग या डिसेंडिंग, वैकल्पिक डीडुप्लीकेशन के साथ।

डुप्लीकेट लाइनें हटाएं
खाली लाइनें हटाएं

0 लाइनें।

यह कैसे काम करता है

आपका टेक्स्ट न्यूलाइन पर स्प्लिट होता है और ड्रॉपडाउन से चुने गए कंपैरेटर से सॉर्ट होता है। अल्फ़ाबेटिकल ऑर्डर रॉ कैरेक्टर कोड की बजाय localeCompare का उपयोग करता है, जो ब्राउज़र की भाषा-जागरूक तुलना है। यह फ़र्क तुरंत दिखता है: एक नैव कोड-पॉइंट सॉर्ट हर बड़े अक्षर को हर छोटे अक्षर से पहले रखता है (इसलिए "Zebra", "apple" से पहले सॉर्ट होगा), और यह एक्सेंट वाले कैरेक्टर को गड़बड़ कर देता है। लोकेल-अवेयर तुलना शब्दों को वैसे ही क्रम में रखती है जैसे कोई डिक्शनरी रखेगी।

न्यूमेरिक सॉर्ट हर लाइन को parseFloat से पार्स करता है और नंबरों की तुलना करता है, जो उस क्लासिक स्ट्रिंग-सॉर्ट बग को ठीक करता है जहाँ "10", "9" से पहले आ जाता है क्योंकि "1" एक छोटा कैरेक्टर है। जो लाइनें किसी नंबर से शुरू नहीं होतीं उन्हें 0 माना जाता है और साथ में समूहित किया जाता है। लेंथ सॉर्ट कैरेक्टर काउंट की तुलना करता है, और शफ़ल Fisher-Yates एल्गोरिद्म का उपयोग करता है, जो हर ऑर्डरिंग को बराबर संभावना देता है। यह बताना ज़रूरी है: लोकप्रिय sort(() => Math.random() - 0.5) ट्रिक बायस्ड शफ़ल पैदा करती है क्योंकि सॉर्ट एल्गोरिद्म एक कंसिस्टेंट कंपैरेटर मान लेते हैं, जबकि Fisher-Yates एरे पर सिर्फ़ एक बार चलता है, हर आइटम को समान रूप से रैंडम पहले वाले स्लॉट से स्वैप करते हुए।

डिसेंडिंग ऑर्डर पहले एसेंडिंग सॉर्ट करता है फिर उसे रिवर्स करता है, डीडुप सॉर्टिंग के बाद Set से चलता है ताकि सिर्फ़ बिल्कुल एक जैसी रिपीट लाइनें हटें, और खाली लाइनें इस सबसे पहले फ़िल्टर हो सकती हैं। पूरी प्रोसेस आपके टैब में एक स्ट्रिंग पर एरे ऑपरेशंस है: पेस्ट करने या सॉर्ट करने पर कोई रिक्वेस्ट फ़ायर नहीं होती (डेवलपर टूल्स के नेटवर्क पैनल में पुष्टि करें), इसलिए नामों, ईमेल या कीज़ की लिस्ट सॉर्ट करने में कभी सर्वर शामिल नहीं होता।