Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में ऑब्जेक्ट्स की सरणी को कई प्रॉपर्टीज द्वारा सॉर्ट करें


मान लीजिए, हमारे पास ऑब्जेक्ट्स की एक सरणी है जैसे −

const arr = [     { id: 1, score: 1, isCut: false, dnf: false },     { id: 2, score: 2, isCut: false, dnf: false },     { id: 3, score: 3, isCut: false, dnf: false },     { id: 4, score: 4, isCut: false, dnf: false },     { id: 5, score: 5, isCut: true, dnf: true },     { id: 6, score: 6, isCut: true, dnf: false },     { id: 7, score: 7, isCut: true, dnf: false },     { id: 8, score: 8, isCut: true, dnf: false },     { id: 9, score: 9, isCut: true, dnf: false },     { id: 10, score: 0, isCut: false, dnf: false },     { id: 11, score: -1, isCut: false, dnf: false },     { id: 12, score: -2, isCut: false, dnf: true },     { id: 13, score: -3, isCut: false, dnf: false },     { id: 14, score: -4, isCut: false, dnf: false },     { id: 15, score: -5, isCut: false, dnf: false },     { id: 16, score: 10, isCut: true, dnf: false } ];

हमें उपरोक्त सरणी को निम्नलिखित मानदंडों पर सॉर्ट करना आवश्यक है −

यदि dnf true है,

ऑब्जेक्ट नीचे जाए; सभी dnf-ऑब्जेक्ट्स को स्कोर द्वारा सॉर्ट किया जाना चाहिए

यदि isCut true है,

ऑब्जेक्ट नीचे जाए, लेकिन dnf से ऊपर; सभी isCut-ऑब्जेक्ट्स को स्कोर द्वारा सॉर्ट किया जाना चाहिए

बाकी को स्कोर द्वारा सॉर्ट किया जाना चाहिए, और यदि स्कोर समान हैं, तो id द्वारा

उदाहरण

इसके लिए कोड होगा −

const arr = [     { id: 1, score: 1, isCut: false, dnf: false },     { id: 2, score: 2, isCut: false, dnf: false },     { id: 3, score: 3, isCut: false, dnf: false },     { id: 4, score: 4, isCut: false, dnf: false },     { id: 5, score: 5, isCut: true, dnf: true },     { id: 6, score: 6, isCut: true, dnf: false },     { id: 7, score: 7, isCut: true, dnf: false },     { id: 8, score: 8, isCut: true, dnf: false },     { id: 9, score: 9, isCut: true, dnf: false },     { id: 10, score: 0, isCut: false, dnf: false },     { id: 11, score: -1, isCut: false, dnf: false },     { id: 12, score: -2, isCut: false, dnf: true },     { id: 13, score: -3, isCut: false, dnf: false },     { id: 14, score: -4, isCut: false, dnf: false },     { id: 15, score: -5, isCut: false, dnf: false },     { id: 16, score: 10, isCut: true, dnf: false } ]; const sortComplex = (arr = []) => {     arr.sort(function (a, b) {       const order = (dnf, isCut) => {         return [0, 1, 3, 2][dnf * 2 + isCut];       }       return order(a.dnf, a.isCut) - order(b.dnf, b.isCut) || b.score - a.score;     }); }; sortComplex(arr); console.log(arr);

आउटपुट

और कंसोल में आउटपुट होगा −

[     { id: 4, score: 4, isCut: false, dnf: false },     { id: 3, score: 3, isCut: false, dnf: false },     { id: 2, score: 2, isCut: false, dnf: false },     { id: 1, score: 1, isCut: false, dnf: false },     { id: 10, score: 0, isCut: false, dnf: false },     { id: 11, score: -1, isCut: false, dnf: false },     { id: 13, score: -3, isCut: false, dnf: false },     { id: 14, score: -4, isCut: false, dnf: false },     { id: 15, score: -5, isCut: false, dnf: false },     { id: 16, score: 10, isCut: true, dnf: false },     { id: 9, score: 9, isCut: true, dnf: false },     { id: 8, score: 8, isCut: true, dnf: false },     { id: 7, score: 7, isCut: true, dnf: false },     { id: 6, score: 6, isCut: true, dnf: false },     { id: 5, score: 5, isCut: true, dnf: true },     { id: 12, score: -2, isCut: false, dnf: true } ]

  1. - जावास्क्रिप्ट में मर्ज सॉर्ट बनाम क्विक सॉर्ट

    मर्ज सॉर्ट डिवाइड एंड कंक्वर तकनीक पर आधारित एक सॉर्टिंग तकनीक है। इसका सबसे खराब स्थिति में समय जटिलता O(n log n) है। लेकिन यह अतिरिक्त लागत के साथ आता है क्योंकि यह एल्गोरिदम अतिरिक्त O(n) मेमोरी लेता है। आइए देखें कि हम इस एल्गोरिदम को कैसे लागू करने जा रहे हैं। हम 2 फंक्शन बनाएंगे, mergeSort और

  1. JavaScript में ऐरे ऑब्जेक्ट की लंबाई JavaScript में ऐरे ऑब्जेक्ट की लंबाई

    JavaScript में Length प्रॉपर्टी ऑब्जेक्ट का आकार लौटाती है। स्ट्रिंग और ऐरे ऑब्जेक्ट की लंबाई के लिए कोड निम्न है -उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, i

  1. जावास्क्रिप्ट में Array.prototype.sort() मेथड जावास्क्रिप्ट में Array.prototype.sort() मेथड

    जावास्क्रिप्ट Array.prototype.sort() मेथड का उपयोग एरे को सॉर्ट करने के लिए किया जाता है। सॉर्टिंग का क्रम अल्फाबेटिक, न्यूमेरिक, आरोही या अवरोही हो सकता है। Array.prototype.sort() मेथड के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /