【问题标题】:How to sort array of objects according to epoch time in JavaScript [duplicate]如何根据JavaScript中的纪元时间对对象数组进行排序[重复]
【发布时间】:2022-06-15 22:03:03
【问题描述】:

我想根据时间安排从 API 获取的数据。 这是数组中的一个对象。

{
    "orderId": "xxxxxxxxxxxxx",
    "amount": 10,
    "status": "CREATED",
    "transactionTime": 1651498914,
    "type": "ADD",
    "mode": "UPI",
    "bankAccountId": {
        "bankAccountNumber": "xxxxxxxxxxxxx",
        "ifsc": "XXXX XXXX XXXX"
    }
}

我想根据 transactionTime 降序排列数组,这是一个纪元时间。

我最初的方法。

data.map((item) => item.transactionTime)
   .sort()
   .reverse()
   .map((item) => {
        return data.find((i) => i.transactionTime == item);
})

此代码运行良好,但正如您所见,这不是一个好方法。 所以我想要一个更优化的解决方案。有人建议使用优先队列。

【问题讨论】:

  • "这是一个纪元时间。" -- 不是每个时间和日期系统都是一个时代相对值吗?
  • .map( e => Array.find( x => ) )O(n^2) 运行时间 - 不要那样做。
  • 您只需要const sorted = Array.from( data ).sort( ( x, y ) => x.transactionTime - y.transactionTime );

标签: javascript arrays sorting priority-queue epoch


【解决方案1】:

可以直接在sort回调中减去次数。

data.sort((a, b)=>b.transactionTime - a.transactionTime);

【讨论】:

  • 请不要发布如此明显重复的答案,而是将它们标记为重复...
猜你喜欢
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2014-05-29
  • 2020-05-25
  • 2011-07-22
  • 2023-03-26
  • 2018-03-29
相关资源
最近更新 更多