You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对JavaScript数组按时间戳排序?排序异常问题求助

Fixing Timestamp Sorting Issue for Your Object Array

嘿,我马上就发现你排序无效的问题根源啦!

问题出在哪?

你创建的userArray里的每个元素都是单个对象(比如你定义的userValue是包含timestamp、username等属性的对象),但你在排序函数里错误地用了a[0]['timestamp']——这是把数组元素当成了二维数组来访问,可实际上每个元素本身就是独立的对象,根本没有索引为0的子元素,所以这个写法完全取不到timestamp的值,排序自然就失效了。

正确的排序代码

直接访问对象的timestamp属性就行,两种写法都可以:

写法1:传统函数

userArray.sort(function(a, b) {
  // 升序排序(时间戳从小到大)
  return a.timestamp - b.timestamp;
});

写法2:箭头函数(更简洁)

// 升序排序
userArray.sort((a, b) => a.timestamp - b.timestamp);

// 如果需要降序排序(时间戳从大到小),反过来就行:
userArray.sort((a, b) => b.timestamp - a.timestamp);

验证示例

我们用模拟数据测试一下:

// 模拟你的数组数据
const userArray = [];
userArray.push({ timestamp: 1620000000, username: 'Alice', message: 'Hi' });
userArray.push({ timestamp: 1610000000, username: 'Bob', message: 'Hello' });
userArray.push({ timestamp: 1630000000, username: 'Charlie', message: 'Hey' });

// 执行升序排序
userArray.sort((a, b) => a.timestamp - b.timestamp);

console.log(userArray);
// 输出结果会按timestamp从小到大排列:Bob → Alice → Charlie

这样就能得到你想要的按时间戳排序后的数组啦!

内容的提问来源于stack exchange,提问作者coder_B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:16:27