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

如何按key属性中0-23位的日期对对象数组进行排序?

按key中的日期部分排序React元素数组

你需要对包含React元素的数组排序,每个元素的key属性由ISO格式日期(前24位)和唯一标识符拼接而成,只需基于key的日期部分排序即可。

解决方案

ISO标准的日期字符串(如2023-01-22T04:00:00.000Z)本身可以直接按字典序比较,结果和时间顺序一致,所以我们可以直接截取key的前24位作为排序依据:

升序排序(旧日期在前)

// 先复制原数组避免原地修改,再排序
const sortedAscArray = [...yourElementArray].sort((elemA, elemB) => {
  const datePartA = elemA.key.slice(0, 24);
  const datePartB = elemB.key.slice(0, 24);
  return datePartA.localeCompare(datePartB);
});

降序排序(新日期在前)

如果需要倒序排列,只需调换比较顺序:

const sortedDescArray = [...yourElementArray].sort((elemA, elemB) => {
  const datePartA = elemA.key.slice(0, 24);
  const datePartB = elemB.key.slice(0, 24);
  return datePartB.localeCompare(datePartA);
});

注意事项

  • 使用[...yourElementArray]是为了创建原数组的浅拷贝,防止sort方法直接修改原数组。如果不需要保留原数组,也可以直接调用yourElementArray.sort(...)。
  • 确保所有元素的key前24位都是有效的ISO日期格式,这样比较结果才会准确对应时间顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:30:56