javascript - 如何按最新和最旧在 moment.js 中进行排序?

标签 javascript momentjs

我的数组是这样的:

const myArr = [{text: 'Hello', created: '2018-05-22T08:56:42.491Z'}, {text: 'Hello', created: '2018-05-24T05:56:42.491Z'},]

对于这种数组,我想按最新和最旧的顺序对它们进行排序,这是我当前的实现,它不起作用:

if (sortFilter === 'oldest') {
      contactData = contactData.sort(({ created: prev }, { created: next }) => moment(prev).format('L') - moment(next).format('L'));
    } else if (sortFilter === 'newest') {
      contactData = contactData.sort(({ created: prev }, { created: next }) => moment(next).format('L') - moment(prev).format('L'));
    }

我的代码有什么问题?

最佳答案

在不使用 momentjs 的情况下,您可以使用 sort() 并使用 new Date() 并将字符串转换为日期对象。

最新的优先。

const myArr = [{
  text: 'Hello',
  created: '2018-05-22T08:56:42.491Z'
}, {
  text: 'Hello',
  created: '2018-05-24T05:56:42.491Z'
}, ];

myArr.sort((a,b)=> new Date(b.created).getTime() - new Date(a.created).getTime());

console.log(myArr);

从大到小:

const myArr = [{
  text: 'Hello',
  created: '2018-05-22T08:56:42.491Z'
}, {
  text: 'Hello',
  created: '2018-05-24T05:56:42.491Z'
}, ];

myArr.sort((a, b) => new Date(a.created).getTime() - new Date(b.created).getTime());

console.log(myArr);

关于javascript - 如何按最新和最旧在 moment.js 中进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50577809/

相关文章:

javascript - 我尝试在松露中部署我的智能合约,但是当我 "unsupported compiler"时说 "truffle migrate"我该如何解决这个问题?

Google map 信息窗口中的 Javascript - 在 IE 中不起作用

node.js - 分配回对象时日期格式未更新 (YYYYMMDD)

javascript - 用 moment.js 检查日差

javascript - moment.js isAfter 给我一个奇怪的结果

javascript - 使用 momentjs 判断日、月或年是否无效

javascript - Google Closure 编译器不压缩字符串值?

javascript - 同位素项目彼此重叠显示

javascript - MomentJs设计模式

javascript - JS。非标准覆盖表