let tags = {
    "01": {
       contentID: [10, 20],
       occurrences: 1
    },
    "02": {
       contentID: [10, 20],
       occurrences: 1
    },
    "04": {
       contentID: [10, 20],
       occurrences: 3
    },
    "05": {
       contentID: [10, 20],
       occurrences: 6
    }
};

घटनाओं को आधार मानकर इसे अवरोही क्रम में कैसे क्रमबद्ध करें, यह एक वैश्विक चर है। तो मैं इसे एक अलग वस्तु में स्टोर करना चाहता हूं और उसे अवरोही क्रम के साथ क्रमबद्ध करना चाहता हूं ..

0
gopigorantala 11 अक्टूबर 2018, 22:41

2 जवाब

इस बारे में एक सरणी के रूप में सोचने के लिए अन्य सुझाव शायद ध्वनि हैं। आदेश के अनुसार जावास्क्रिप्ट वस्तुओं के बारे में सोचना एक अच्छा विचार नहीं है, भले ही एक कुंजी-आदेश विनिर्देश हो। लेकिन, यदि आप परिणामों को उसी प्रारूप में रखना चाहते हैं, तो आप ऐसा कर सकते हैं, और फिर भी कुंजियों को क्रमबद्ध करना समाप्त कर सकते हैं:

let tags = {"01": {"contentID": [10, 20], "occurrences": 1}, "02": {"contentID": [10, 20], "occurrences": 1}, "04": {"contentID": [10, 20], "occurrences": 3}, "05": {"contentID": [10, 20], "occurrences": 6}}

const sorted = Object.entries(tags).sort(([, {occurrences: a}], [, {occurrences: b}]) => b - a)
  .reduce((a, [k, v]) => Object.assign(a, {[k]: v}), {})

console.log(sorted)

मैं यह नहीं देख सकता कि यह वास्तव में किसके लिए अच्छा है, हालाँकि। केवल एक ही स्थान पर आप व्यवहार में अंतर देख सकते हैं यदि आप उस पर Object.keys, Object.values, या Object.entries जैसी किसी चीज़ का उपयोग करते हैं, फिर से सरणियाँ बनाते हैं।

1
Scott Sauyet 11 अक्टूबर 2018, 20:28

कृपया ध्यान दें कि जावास्क्रिप्ट में वस्तुओं को क्रम की कोई समझ नहीं है।

हालाँकि आप अपना परिणाम रखने के लिए बना सकते हैं और सरणी बना सकते हैं।

इसे अवरोही क्रम में प्राप्त करने के लिए, आप कर सकते हैं

Object.values(tags).sort((a,b) => b.occurrences - a.occurrences)

1
ashish singh 11 अक्टूबर 2018, 19:46