Javascript 按字段频率对对象数组进行排序

Javascript 按字段频率对对象数组进行排序,javascript,Javascript,有没有一种方法可以让我按照字段的频率对一组对象进行排序,然后制作一个新的列表作为该频率的引导板?例如,我试图在一个图书馆里找出谁是出版最多的作者,所以从一组原始书籍开始,我得到了一组最频繁的作者 谢谢我认为您的数据如下所示: var books=[{author:"Steven",title:"sth"},...]; 因此,您可以简单地为每个作者存储一个图书计数: var bookcountof={}; books.forEach(function(book){ if(!bookcount

有没有一种方法可以让我按照字段的频率对一组对象进行排序,然后制作一个新的列表作为该频率的引导板?例如,我试图在一个图书馆里找出谁是出版最多的作者,所以从一组原始书籍开始,我得到了一组最频繁的作者


谢谢

我认为您的数据如下所示:

var books=[{author:"Steven",title:"sth"},...];
因此,您可以简单地为每个作者存储一个图书计数:

var bookcountof={};

books.forEach(function(book){
 if(!bookcountof[book.author]) bookcountof[book.author]=0;
 bookcountof[book.author]++;//increase
});
要获得图书数量,例如steven,您只需执行以下操作:

bookcountof["Steven"];
现在我们需要一个数组,以便进行排序:

var topauthors=Object.keys(bookcountof).map(name=>({name,count:bookcountof[name]}));

topauthors.sort((a,b)=>a.count-b.count);

始终输入并输出样本
我是否有可能按照字段的频率对对象数组进行排序,然后创建一个新列表作为该频率的引导板?
----是Possible@victor(不客气如果你获得了15个声望,你可以奖励回答者更多的选票。。。