javascript - 按观看次数和日期排序的趋势
问题描述
我正在尝试通过一些自定义更改来实现Hacker News 排名算法。我需要按流行度/趋势对我的帖子(对象数组)进行排序。简单地说,我想比较视图 x 发布日期并获取热门帖子。
我试过这段代码:
const array = [
{ title: "1", views: 100, publishDate: 1 }, // publish date = 1 hour ago
{ title: "2", views: 400, publishDate: 2 }, // publish date = 2 hour ago
{ title: "3", views: 300, publishDate: 3} // publish date = 3 hour ago
];
const sortByTrending = array.sort((a, b) => b.views / Math.pow(b.publishDate, 1.8) - a.views /
Math.pow(a.publishDate, 1.8));
console.log(sortByTrending);
// Output:
[
{
title:"1",
views:300,
publishDate:1
},{
title:"3",
views:1000,
publishDate:3
},{
title:"2",
views:400,
publishDate:2
}
];
它以某种方式工作。但是有没有更好的方法来获得更准确的结果?