JS如何最佳分组依据并重视查找/替换

我正在编写一个程序,该程序返回一堆带有分配给用户的时间戳的任务,我想知道如何最好地转换涉及显示的两个数据集。

我的任务数据结构如下:

tasks = [{
    "id": 1,"resource_id": 1,"day": '2019-10-29'
},{
    "id": 2,"day": '2019-10-28'
},{
    "id": 3,"day": '2019-10-30'
},{
    "id": 4,"resource_id": 2,"day": '2019-10-31'
},{
    "id": 5,{
    "id": 6,{
    "id": 7,"resource_id": 3,{
    "id": 8,"day": '2019-10-29'
}]

用户喜欢:

users = [{ 
   "id": 1,"first_name": "Anthony","last_name": "Smith",},"first_name": "Jason","last_name": "Jones","first_name": "Billy","last_name": "Phllips",}]
  1. task.resource_id链接到user.id
  2. task.day将永远是工作日。
  3. 用户一周可能有多个任务,但每天只有一个。

所以我想我现在真正想要实现的是如何转换我的2个数据集以最好地显示某个用户的所有任务,其中该用户的任务按日期排序。

在上面的数据示例中,输出如下所示:

Anthony Smith: Mon 28th,Tue 29th,Wed 30th
Jason Jones: Mon 28th,Wed 30th,Thur 31st
Billy Phillips: Mon 28th,Tue 29th

我不在乎用户名是由该用户的较早任务排序的,只要该用户中任务的日期已排序即可。

到目前为止,我想出了什么来改变我的任务:

let grouped_tasks = tasks.reduce(function (r,a) {
    r[a.resource_id] = r[a.resource_id] || [];
    r[a.resource_id].push(a);
    return r;
},Object.create(null));

本质上,这些任务按task.resource.id进行分组,并附加task.resource_id作为该分组的关键字。这样,应该可以更轻松地在users.id中为task.resource_id进行查找,以便获得用户的名字和姓氏。

从那里开始,我还必须按day升序进行排序,但是我不禁感到有一个比目前为止更干净,更好的解决方案。

我非常感谢您的帮助! :)

谢谢。

zhengluxxx 回答:JS如何最佳分组依据并重视查找/替换

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162976.html

大家都在问