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

按日期排序对象数组求助:附JSON数据结构示例

按date字段排序对象数组的解决方案

没问题!要给你手里这个包含date字段的对象数组排序,用JavaScript的数组sort()方法就能轻松搞定,下面分几种情况给你具体实现:

1. 基础升序排序(从最早日期到最晚)

因为你的date是YYYY-MM-DD的ISO标准格式,我们可以把字符串转成Date对象,通过时间戳的差值来比较顺序:

// 原地修改原数组,按日期升序排列
model.sort((a, b) => {
  const dateA = new Date(a.date);
  const dateB = new Date(b.date);
  // 时间戳相减,正数则b排在a后面,负数则a排在b后面
  return dateA.getTime() - dateB.getTime();
});

2. 降序排序(从最晚日期到最早)

只需要把上面的差值顺序反过来就行:

// 原地修改原数组,按日期降序排列
model.sort((a, b) => {
  const dateA = new Date(a.date);
  const dateB = new Date(b.date);
  return dateB.getTime() - dateA.getTime();
});

3. 更简洁的写法(利用ISO字符串特性)

ISO格式的日期字符串(YYYY-MM-DD)的字典序和时间顺序是完全一致的,所以我们可以直接比较字符串,省去转Date对象的步骤:

// 升序(直接比较字符串)
model.sort((a, b) => a.date.localeCompare(b.date));

// 降序
model.sort((a, b) => b.date.localeCompare(a.date));

小提示:避免修改原数组

sort()方法会直接修改原数组,如果想要保留原数组不变,可以先创建一个数组副本再排序:

// 创建原数组的浅拷贝,再排序,原数组不受影响
const sortedModel = [...model].sort((a, b) => new Date(a.date) - new Date(b.date));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:34:08