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

JavaScript如何按日期分割带时间属性的温度对象数组

实现方案

你可以通过Array.reduce()方法按日期对数据进行分组,核心逻辑是用年月日格式的字符串作为分组唯一key,把同日期的数据归集到同一数组下,最后提取归集结果的所有值就能得到你要的多维数组。

完整代码

// 分组逻辑
const groupedTemperatureData = Object.values(
  temperatureData.reduce((groupMap, item) => {
    // 提取ISO时间字符串前10位作为分组key(格式为YYYY-MM-DD,天然匹配日期分组需求)
    const dateKey = item.time.slice(0, 10)
    // 也可以用你预处理新增的date字段生成key,写法如下:
    // const dateKey = `${item.date.getFullYear()}-${String(item.date.getMonth()+1).padStart(2,'0')}-${String(item.date.getDate()).padStart(2,'0')}`

    // 初始化对应日期的分组数组
    if (!groupMap[dateKey]) {
      groupMap[dateKey] = []
    }
    // 如果不需要保留之前新增的date字段,可以push前删除:delete item.date
    groupMap[dateKey].push(item)
    return groupMap
  }, {})
)

补充说明

  • 你的原始预处理代码是直接修改原数据对象新增date字段,如果不想污染原始数据,可以把预处理逻辑调整为返回新对象:
    const temperatureData = data
      .filter(d => d.type === 'temperature')
      .map(d => ({ ...d, date: new Date(d.time) }))
    
  • 最终输出的groupedTemperatureData和你给出的预期格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:03