Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
37
rated 0 times [  42] [ 5]  / answers: 1 / hits: 87702  / 12 Years ago, fri, june 8, 2012, 12:00:00

how do I sort a dictionary by key like



dict[word_21] = Hello Java;
dict[word_22] = Hello World;
dict[word_11] = Hello Javascript;


so that I get



dict[word_22] = Hello World;
dict[word_21] = Hello Java;
dict[word_11] = Hello Javascript;


There are word_number combinations on indices only and the values are strings. The indices are distinct (no equal values) but could be undefined in an error case



Edit: Actually I need the descending and ascending order of it. But the descending order is what I need at the moment.


More From » jquery

 Answers
83

Try this



var sorted = [];
for(var key in dict) {
sorted[sorted.length] = key;
}
sorted.sort();


Sorting dict on its keys and writing it back to the object does not make sense to me, but here it goes:



function sortOnKeys(dict) {

var sorted = [];
for(var key in dict) {
sorted[sorted.length] = key;
}
sorted.sort();

var tempDict = {};
for(var i = 0; i < sorted.length; i++) {
tempDict[sorted[i]] = dict[sorted[i]];
}

return tempDict;
}

dict = sortOnKeys(dict);

[#85057] Thursday, June 7, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
saulthomasb

Total Points: 326
Total Questions: 98
Total Answers: 93

Location: Jordan
Member since Sun, Dec 26, 2021
2 Years ago
;