javascript - 如何将日期形式排序为最新到最旧的对象数组 react js

标签 javascript arrays reactjs object

我正在尝试将这个对象数组中的日期从最新到最旧排序。我正在尝试这段代码,即将数组复制到一个新的 const,然后将它与 sort 一起使用,但我得到了相同的结果,没有排序的日期。我的代码如下:

const array=[...user?.editedBy]
console.log(array,"array")

const sortedDates = array?.sort((dateA, dateB) => dateB.date -dateA.date )
console.log(sortedDates,'sortedArray')

第一张图片是来自数组的控制台日志,第二张来自 sortedDates

同样的结果,有人可以帮我弄清楚我错过了什么吗?

提前致谢

enter image description here enter image description here

最佳答案

正如您在控制台屏幕截图中所见,这些实际上不是 Date 对象,而是字符串。

因此您必须将字符串映射到 Date 对象,然后再进行比较。

const sortedDates = array?
  .map(obj => { return { ...obj, date: new Date(obj.date) } })
  .sort((a, b) => b.date - a.date)

关于javascript - 如何将日期形式排序为最新到最旧的对象数组 react js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70855552/

相关文章:

javascript - 当使用数据容器 ="body"属性解决溢出 :hidden div element 时,我的自定义 Bootstrap 工具提示样式被覆盖

arrays - 没有动态内存分配的链表

javascript - 使用 draft.js 是否可以使用类名创建自定义 block 跨度

javascript - 如何在 React 中设置类的样式

javascript - 声明一个全局谷歌地图对象

javascript - 使用 javascript :history. go(-1) 有效,但我丢失了 css 属性和脚本

javascript - 从 npm 安装插件会导致错误

javascript - 是否有任何好的或可靠的方法可以仅使用 Internet Explorer 错误消息找出 JavaScript 错误的位置?

javascript - 聚合 JavaScript 数组的对象值?

javascript - 在 Node js中将json数组返回给电报机器人?