javascript - D3 sort an array of objects on 2 object properties -


मेरे पास एक वस्तु वस्तु है जिसमें 4 ऑब्जेक्ट गुण हैं जैसे:

  var डेटासेट = [{कुंजी: 0, ब्रांड:" ए ", मूल्य: 10, आकार: 10}, {कुंजी: 1, ब्रांड:" बी ", मूल्य: 11, आकार (कुंजी: 2, ब्रांड: "सी", मूल्य: 12, आकार: 9}, {कुंजी: 3, ब्रांड: "डी", मूल्य: 13, आकार: 9}, {कुंजी: 4, ब्रांड : "ई", मूल्य: 14, आकार: 9}, {कुंजी: 5, ब्रांड: "जी", मान: 15, आकार: 9}, {कुंजी: 6, ब्रांड: "एफ", मान: 16, आकार : 9}, {कुंजी: 7, ब्रांड: "एच", मान: 17, आकार: 9}, {कुंजी: 8, ब्रांड: "I", मान: 18, आकार: 9}, {कुंजी: 9, ब्रांड : "जे", मान: 1 9, आकार: 9}, {कुंजी: 10, ब्रांड: "के", मूल्य: 20, आकार: 9}];  

तब मैं डी 3 के साथ एक ग्राफ तैयार कर रहा हूं जिसमें value को क्षैतिज रेखाओं और आकार के रूप में बंडल के रूप में लाइनों के शीर्ष पर बैठे हैं ( कृपया देखें)।

मैंने ऊपर दिए गए सभी ऑब्जेक्ट गुणों के लिए key संपत्ति के अलावा एक सॉर्ट फ़ंक्शन जोड़ा जो कि मुख्य फ़ंक्शन के लिए सॉर्ट में उपयोग किया जाता है नाम और मूल्य के आधार पर सॉर्ट करते समय यह ठीक काम करता है, लेकिन जब मैं आकार की रेखाओं और बुलबुले के आधार पर सॉर्ट करता हूं तो अलग-अलग सॉर्ट किया जाता है ध्यान दें कि यह केवल तभी होता है जब चाबी का मूल्य 10 तक बढ़ जाता है, लेक्सिफोग्राफिकल सॉर्ट इश्यू्स का सुझाव दे रहा है, जिसे मैंने सोचा कि मैं 0 के नीचे प्रत्येक कुंजी संख्या के सामने 0 से जोड़कर बाईपास कर सकता हूं (जो कुछ भी नहीं बदले)।

मेरा प्रश्न यह है कि विभिन्न तत्वों को एक अलग तरीके से कैसे हल किया गया है भले ही लागू किए गए सॉर्ट तरीके सभी एक ही कुंजी फ़ंक्शन का उपयोग कर रहे हैं? और, स्वाभाविक रूप से, मैं सॉर्ट फ़ंक्शन कैसे संरेखित कर सकता हूँ?

इसके बजाय संख्यात्मक मान के अनुसार सॉर्ट करने की कोशिश करें स्ट्रिंग का Unary + ऑपरेटर इसे पूरा कर सकता है।

  फ़ंक्शन getSortFunction (propertyName) {वापसी फ़ंक्शन (a, b) {return + (a [propertyName]) & gt; + (ख [प्रॉपर्टी]); }} Dataset.sort (getSortFunction ("आकार"));  

Comments