मेरी राय में, यहां के विशिष्ट मामले के लिए सबसे अच्छा तरीका एक आम सुझाव है। थोड़ा सुधार मैं सुझाव दूंगा कि आधुनिक ब्राउज़रों में काम करता है:
Object.keys(aao).sort(function(a,b){return aao[b]-aao[a]});
यह आसानी से लागू हो सकता है और विशिष्ट मामले में शानदार काम कर सकता है ताकि आप कर सकें:
let aoo={};
aao["sub2"]=1;
aao["sub0"]=-1;
aao["sub1"]=0;
aao["sub3"]=1;
aao["sub4"]=0;
let sk=Object.keys(aao).sort(function(a,b){return aao[b]-aao[a]});
for (let i=sk.length-1;i>=0;--i){
}
इसके अलावा, मैं यहां एक और "सामान्य" फ़ंक्शन प्रदान करता हूं जिसका उपयोग आप स्थितियों की व्यापक श्रेणी में भी सॉर्ट करने के लिए कर सकते हैं और जो सुधार मैंने मि। बेन ब्लैंक द्वारा उत्तर के दृष्टिकोण के साथ सुझाए हैं (स्ट्रिंग मान भी छाँटते हैं ) और पोप जोहानेउलियु ( विशिष्ट ऑब्जेक्ट फ़ील्ड / प्रॉपर्टी द्वारा छँटाई) और आपको यह तय करने की सुविधा देता है कि आप एक आरोही या अवरोही क्रम चाहते हैं, यहाँ यह है:
function sortedKeys(aao,comp="",intVal=false,desc=false){
let keys=Object.keys(aao);
if (comp!="") {
if (intVal) {
if (desc) return keys.sort(function(a,b){return aao[b][comp]-aao[a][comp]});
else return keys.sort(function(a,b){return aao[a][comp]-aao[a][comp]});
} else {
if (desc) return keys.sort(function(a,b){return aao[b][comp]<aao[a][comp]?1:aao[b][comp]>aao[a][comp]?-1:0});
else return keys.sort(function(a,b){return aao[a][comp]<aao[b][comp]?1:aao[a][comp]>aao[b][comp]?-1:0});
}
} else {
if (intVal) {
if (desc) return keys.sort(function(a,b){return aao[b]-aao[a]});
else return keys.sort(function(a,b){return aao[a]-aao[b]});
} else {
if (desc) return keys.sort(function(a,b){return aao[b]<aao[a]?1:aao[b]>aao[a]?-1:0});
else return keys.sort(function(a,b){return aao[a]<aao[b]?1:aao[a]>aao[b]?-1:0});
}
}
}
आप निम्न कोड की तरह कुछ की कोशिश कर कार्यात्मकता का परीक्षण कर सकते हैं:
let items={};
items['Edward']=21;
items['Sharpe']=37;
items['And']=45;
items['The']=-12;
items['Magnetic']=13;
items['Zeros']=37;
console.log("1: "+sortedKeys(items));
console.log("2: "+sortedKeys(items,"",false,true));
console.log("3: "+sortedKeys(items,"",true,false));
console.log("4: "+sortedKeys(items,"",true,true));
items={};
items['k1']={name:'Edward',value:21};
items['k2']={name:'Sharpe',value:37};
items['k3']={name:'And',value:45};
items['k4']={name:'The',value:-12};
items['k5']={name:'Magnetic',value:13};
items['k6']={name:'Zeros',value:37};
console.log("1: "+sortedKeys(items,"name"));
console.log("2: "+sortedKeys(items,"name",false,true));
जैसा कि मैंने पहले ही कहा था, यदि आपको सामान करने की आवश्यकता है, तो आप छांटे गए कुंजियों पर लूप कर सकते हैं
let sk=sortedKeys(aoo);
for (let i=sk.length-1;i>=0;--i){
}
अंतिम, लेकिन कम से कम, Object.keys और Array.sort के लिए कुछ उपयोगी संदर्भ