【问题标题】:Javascript sort object array by recent date to oldest date? [duplicate]Javascript按最近日期到最旧日期对对象数组进行排序? [复制]
【发布时间】:2020-06-23 20:39:18
【问题描述】:

我想创建一个对象数组,其中包含每个对象的所有日期,按从最近日期到最旧日期的顺序排序。
如何遍历每个对象的日期并对它们进行排序? medList[0].data.sort 会工作吗?
我想这样排序:

var newArray = [{"dose": 10, "date": "2/15/2020"}, {"dose": 20, "date": "1/18/2020"}, {"dose": 20, "date": "12/21/2019"}]

const medList = [
  {
    "name": "Insulin",
    "dose unit": "mg",
    "freq": "daily",
    "route": "PO",
    "data": [
{
          "dose": 20,
          "date": "12/21/2019"
        },
        {
          "dose": 10,
          "date": "2/15/2020"
        }, {
          "dose": 20,
          "date": "1/18/2020"
        }
    ]
  },
  {
    // Another med...
  } ..
]

【问题讨论】:

    标签: javascript arrays sorting object


    【解决方案1】:

    您可以执行以下操作。

    const medList = [{
        "name": "Insulin",
        "data": [{
            "dose": 20,
            "date": "12/21/2019"
          },
          {
            "dose": 10,
            "date": "2/15/2020"
          }, {
            "dose": 20,
            "date": "1/18/2020"
          }
        ]
      },
      {
        "name": "Viagra",
        "data": [{
            "dose": 20,
            "date": "9/9/2019"
          },
          {
            "dose": 10,
            "date": "12/15/2020"
          }, {
            "dose": 20,
            "date": "1/22/2020"
          }
        ]
      },
    ]
    
    const sortedViagra = medList[1].data.sort((a, b) => new Date(b.date) - new Date(a.date));
    
    const sortedMeds = medList.map(med => {
      return med.data.sort((a, b) => new Date(b.date) - new Date(a.date));
    });
    
    console.log('sortedMeds --->', sortedMeds)
    console.log('sortedViagra -->', sortedViagra)

    【讨论】:

    • 如果我只想调整一个对象的日期,比如说伟哥,我应该使用 medList[1].map 吗?
    • 如下,不需要map,只需sort。也更新了答案,以便更容易阅读 - const sortedViagra = medList[1].data.sort((a, b) => new Date(b.date) - new Date(a.date));
    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2021-04-30
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    相关资源
    最近更新 更多