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

Sorting Javascript associative array values in descending order

本文关键字:排序 数组 关联 降序 Javascript      更新时间:2023-09-26

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

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

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

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

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的顺序可能需要反转