按降序对Javascript关联数组值进行排序

时间:2015-11-25 19:21:35

标签: javascript

我有以下方法根据某些输入文本获取单词频率:

function getWordFrequency(lowerCaseArray) {
    var wordFrequency = {};
    $.each(lowerCaseArray, function(ix, word) {
        // skip empty results
        if (!word.length) {
        return;
        }
        // add word to wordFrequency
        if (!wordFrequency[word]) {
        wordFrequency[word] = 0;
        } 
        wordFrequency[word]++;
    });
    return wordFrequency;
}

但是,我想按降序返回单词的频率,即

cats => 20
dogs => 19
frog => 17
humans => 10

目前,我的算法按照输入单词出现的顺序返回。

1 个答案:

答案 0 :(得分:2)

如果要订购,则必须返回一个对象数组。对象的属性没有保证的顺序。

var obj = getWordFrequency(words);
var array = Object.keys(obj).map(function(key){
     return {word: key, count: obj[key]};
});
array.sort(function (a,b){ return b.count - a.count});

从我的手机输入,未经测试,a和b的顺序可能需要撤消