Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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 सही है,

object goes to bottom; all dnf-objects should be sorted by score

अगर समस्या सही है,

object goes to bottom, but above dnfs; all isCut-objects should be sorted by score

बाकी को स्कोर के आधार पर क्रमबद्ध किया जाना चाहिए, और यदि स्कोर बराबर हैं, तो आईडी के अनुसार

उदाहरण

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

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) मेमोरी लेता है। अब आइए देखें कि हम इस एल्गोरिथम को कैसे लागू करने जा रहे हैं। हम 2 फ़ंक्

  1. जावास्क्रिप्ट - सरणी वस्तुओं की लंबाई

    जावास्क्रिप्ट में लंबाई संपत्ति वस्तु का आकार लौटाती है। स्ट्रिंग और सरणी ऑब्जेक्ट की लंबाई के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना, .परिणाम {फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; लाल रंग; }जावास्क्रिप्ट लंबाई गुणयहा

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

    JavaScript Array.prototype.sort() पद्धति का उपयोग किसी सरणी को छांटने के लिए किया जाता है। छँटाई का क्रम वर्णानुक्रमिक, संख्यात्मक, आरोही या अवरोही हो सकता है। Array.prototype.sort() विधि के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरि