vue2.js项目中的js文件中的结构数组中包含名字,时间戳,性别,怎么根据时间戳从晚到早排序,可以写个demo吗
时间: 2023-06-10 08:08:39 浏览: 130
可以的,以下是一个简单的根据时间戳从晚到早排序的示例代码:
```javascript
// 假设我们有一个包含名字、时间戳和性别的结构数组
const data = [
{ name: '张三', timestamp: 1609459200000, gender: '男' }, // 2021-01-01 00:00:00
{ name: '李四', timestamp: 1609372800000, gender: '男' }, // 2020-12-31 00:00:00
{ name: '王五', timestamp: 1609286400000, gender: '女' } // 2020-12-30 00:00:00
];
// 根据时间戳从晚到早排序
data.sort((a, b) => b.timestamp - a.timestamp);
console.log(data);
// 输出:
// [
// { name: '张三', timestamp: 1609459200000, gender: '男' },
// { name: '李四', timestamp: 1609372800000, gender: '男' },
// { name: '王五', timestamp: 1609286400000, gender: '女' }
// ]
```
这里使用了 `sort` 方法来排序,它接受一个比较函数作为参数。比较函数的返回值决定了排序的顺序,如果返回值大于 0,则表示第一个参数排在第二个参数之后,如果小于 0,则表示第一个参数排在第二个参数之前,如果等于 0,则表示两个参数相等。
在这个示例中,我们使用 `b.timestamp - a.timestamp` 作为比较函数,表示按照时间戳从晚到早排序。具体来说,如果 `b.timestamp` 大于 `a.timestamp`,则返回一个正数,使得 `b` 排在 `a` 之后;如果 `b.timestamp` 小于 `a.timestamp`,则返回一个负数,使得 `b` 排在 `a` 之前;如果 `b.timestamp` 等于 `a.timestamp`,则返回 0,表示两个元素相等,不需要调整顺序。
阅读全文