首页 > 解决方案 > 按观看次数和日期排序的趋势

问题描述

我正在尝试通过一些自定义更改来实现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
  }
];

它以某种方式工作。但是有没有更好的方法来获得更准确的结果?

标签: javascriptarraysalgorithmsortingjavascript-objects

解决方案


推荐阅读