我正在尝试通过一些自定义更改来实现Hacker News ranking algorithm。我需要按受欢迎程度/趋势对帖子(对象数组)进行排序。简而言之,我想比较观看次数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
}
];
它正在以某种方式工作。但是,有没有更好的方法来获得更准确的结果呢?