Sorting Javascript Dictionary

Dictionary here a key:value object

by klenwell

JavaScript

var dict = {
    'a': 100,
    'b': 200,
    'c': 25,
    'd': 150
};

function dict_to_kvlist(dict) {
    var kv_list = [];
    Object.keys(dict).map(function (k) {
        var kv = {k:k, v:dict[k]};
        kv_list.push(kv);
    });
    return kv_list;
};

function sort_kvlist(kv_list, DESC) {
    var sorted_kvlist = kv_list.sort(function (a, b) {
        return a.v - b.v;
    });
    
    if ( DESC ) {
        sorted_kvlist.reverse();
    }
    
    return sorted_kvlist.map(function(kv) { return kv.k; });
};

var sorted_dict_asc = sort_kvlist(dict_to_kvlist(dict));
var sorted_dict_desc = sort_kvlist(dict_to_kvlist(dict), true);

console.log(dict, sorted_dict_asc, sorted_dict_desc);