जेसक्रिप्ट एरे सॉर्ट
- पिछला पृष्ठ JS एकल सर्च
- अगला पृष्ठ JS एकल सर्किट
sort()
विधि सबसे मजबूत आयत्त विधियों में से एक है。
आयत्त क्रमबद्ध
sort()
विधि फ़ाइल नाम के क्रम में एक आयत्त को क्रमबद्ध करता है:
इन्स्टांस
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits में एलिमेंट्स को जारी करें
आयताकार को उल्टा करें
reverse()
तरीके आयताकार के एलिमेंट्स को उल्टा करता है。
आप इसे अक्रमिक तरीके से आयताकार को जारी कर सकते हैं:
इन्स्टांस
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits में एलिमेंट्स को जारी करें fruits.reverse(); // एलिमेंट्स की क्रमवारी को उल्टी करें
अंक जारी करना
डिफ़ॉल्ट रूप सेsort()
फ़ंक्शनस्ट्रिंगक्रम के आधार पर मूल्यों को जारी करता है。
यह फ़ंक्शन स्ट्रिंग ("Apple" "Banana" के पहले होता है) के लिए बहुत उपयोगी है。
हालांकि, यदि नंबरों को स्ट्रिंग के रूप में जारी किया जाता है, तो "25" "100" से बड़ा है क्योंकि "2" "1" से बड़ा है。
इसलिएsort()
तरीके में अंकों को जारी करने के लिए गलत परिणाम पैदा करता है。
हम एकसमानता फ़ंक्शनइस समस्या को ठीक करने के लिए:
इन्स्टांस
गिरावट क्रमबद्ध करें: वृद्धि क्रमबद्ध करें:
इसी तरह से एक्रमिक जारी करने के लिए आयताकार को जारी करें:
इन्स्टांस
गिरावट क्रमबद्ध करें: var points = [40, 100, 1, 5, 25, 10];
समानता फ़ंक्शन
तुलना करने वाली फ़ंक्शन का उद्देश्य एक अन्य जारी करने की क्रमवारी निर्धारित करना है。
तुलना करने वाली फ़ंक्शन को एक नकारात्मक, शून्य या सकारात्मक मूल्य वापस करना चाहिए, जो निम्नलिखित पारामीटरों पर निर्भर करता है:
function(a, b){return a-b}
जब sort()
जब फ़ंक्शन दो मूल्यों को तुलना करता है, तो वह मूल्यों को तुलना करने वाली फ़ंक्शन को भेजता है और उसके वापस प्राप्त की जाने वाली मूल्य के आधार पर उन्हें जारी करता है。
उदाहरण:
जब 40 और 100 को तुलना की जाएsort()
यह फ़ंक्शन function(40,100) को बुला लेता है。
इस फ़ंक्शन 40-100 की गणना करती है और -60 (नकारात्मक मूल्य) वापस करती है。
जारी करने वाली फ़ंक्शन 40 को 100 से नीचे की बारी में जारी करेगी。
आप नीचे दिए गए कोड टुकड़े का प्रयोग करके अंक और अक्षर जारी कर सकते हैं:
<button onclick="myFunction1()">अक्षरों के क्रम में जारी करें</button> <button onclick="myFunction2()">अंकों के क्रम में जारी करें</button> <p id="demo"></p> <script> गिरावट क्रमबद्ध करें: document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script>
points.sort(function(a, b){return 0.5 - Math.random()});
एकलबद्धता में सबसे बड़ा (या सबसे छोटा) मूल्य खोजना
JavaScript एकलबद्धता में सबसे बड़े या छोटे मूल्य को खोजने के लिए आंतरिक फ़ंक्शन नहीं प्रदान करता
यदि आपको केवल एकलबद्धता को क्रमबद्ध करने के बाद, आप अगले इंडेक्स के द्वारा अधिकतम या न्यूनतम मूल्य को प्राप्त करना है, तो यह एक अच्छा तरीका है。
इन्स्टांस
गिरावट क्रमबद्ध करें: वृद्धि क्रमबद्ध करें: points.sort(function(a, b){return a - b}); // अब points[0] न्यूनतम मूल्य को समाविष्ट करता है
// तथा points[points.length-1] अधिकतम मूल्य को समाविष्ट करता है
इन्स्टांस
गिरावट क्रमबद्ध करें: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // अब points[0] अधिकतम मूल्य को समाविष्ट करता है
// तथा points[points.length-1] न्यूनतम मूल्य को समाविष्ट करता है
यदि आपको केवल सबसे अधिक या सबसे कम मूल्य को खोजना है, तो पूरे एकलबद्धता को क्रमबद्ध करना प्रभावी तरीका नहीं है。
आप Math.min() का उपयोग करके एकलबद्धता का उपयोग कर सकते हैं आप Math.max() का उपयोग करके एकलबद्धता का उपयोग कर सकते हैं
Math.max.apply
इन्स्टांस
function myArrayMax(arr) { एकलबद्धता में सबसे अधिक मूल्य खोजने के लिए उपयोग करें: }
return Math.max.apply(null, arr);
समान है Math.max.apply([1, 2, 3])
。
Math.max(1, 2, 3)
आप Math.min() का उपयोग करके एकलबद्धता का उपयोग कर सकते हैं Math.min.apply
यह एकलबद्धता में सबसे कम मूल्य खोजने के लिए उपयोग करें:
इन्स्टांस
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
समान है Math.min(1, 2, 3)
。
मेरे Min / Max JavaScript तरीके
सबसे तेज़ समाधान तरीका 'स्वयंचलित' तरीका है。
यह फ़ंक्शन माइन वाली एकलबद्धता घूमता है और प्राप्त सबसे अधिक मूल्य को हर मूल्य से तुलना करता है:
उदाहरण (Max खोजना)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
यह फ़ंक्शन माइन वाली एकलबद्धता घूमता है और प्राप्त सबसे कम मूल्य को हर मूल्य से तुलना करता है:
उदाहरण (Min खोजना)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { अगर (arr[len] < min) { min = arr[len]; } } return min; }
ऑब्जेक्ट एकल सर्किट को जारी रखें
जावास्क्रिप्ट एकल सर्किट अक्सर ऑब्जेक्ट को शामिल करते हैं:
इन्स्टांस
वार वार cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
भले ही ऑब्जेक्ट विभिन्न डाटा टाइप के अटिबातों का स्वामी होंsort()
यह विधि अभी भी एक्सेसबल एक्सेसबल को जारी रख सकती है。
समाधान के लिए तुलना करने वाले फ़ंक्शन के द्वारा तुलना करें:
इन्स्टांस
cars.sort(function(a, b){return a.year - b.year});
स्ट्रिंग अटिबात को तुलना करना थोड़ा जटिल होता है:
इन्स्टांस
cars.sort(function(a, b){ वार वार x = a.type.toLowerCase(); वार वार y = b.type.toLowerCase(); अगर (x < y) {-1 वापस करें;} अगर (x > y) {1 वापस करें;} 0 वापस करें; });
- पिछला पृष्ठ JS एकल सर्च
- अगला पृष्ठ JS एकल सर्किट