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

如何为JSON数据动态设置变量名?按日期拆分数据存储节点

按日期动态存储数据的解决方案

嘿,我完全get你的需求了——你希望obj.data不再是把所有数据都追加到同一个数组里,而是能按日期自动创建独立的节点,每天的数据都存在对应日期的分组里对吧?这事儿不难实现,我给你两种常用的方案,你可以根据自己的场景选:

方案一:用日期作为对象键(推荐,访问效率更高)

首先我们把原来的data从数组改成空对象,这样就能用日期字符串作为键来分组存储数据:

// 初始化对象,把data改成空对象
let obj = {
  "data_type": "data according to date",
  "status_message": "",
  "data": {} 
};

然后写一个工具函数,用来自动处理每日数据的添加:

function addDailyData(newData) {
  // 获取当前日期,格式化为YYYY-MM-DD的标准格式(方便后续查找)
  const today = new Date().toISOString().split('T')[0];
  
  // 如果当前日期的节点还不存在,就初始化一个空数组
  if (!obj.data[today]) {
    obj.data[today] = [];
  }
  
  // 把新数据追加到当天的数组里
  obj.data[today].push(newData);
}

调用示例

// 模拟添加今天的两条数据
addDailyData({ temp: 25, humidity: 60 });
addDailyData({ temp: 26, humidity: 58 });

// 模拟明天的数据(手动修改日期测试)
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
const tomorrowStr = tomorrow.toISOString().split('T')[0];
obj.data[tomorrowStr] = [{ temp: 24, humidity: 62 }];

最终效果

此时obj的结构会变成这样:

{
  "data_type": "data according to date",
  "status_message": "",
  "data": {
    "2024-05-20": [
      { temp: 25, humidity: 60 },
      { temp: 26, humidity: 58 }
    ],
    "2024-05-21": [
      { temp: 24, humidity: 62 }
    ]
  }
}

这种方式的好处是访问某一天的数据特别快,直接用obj.data['2024-05-20']就能拿到当天所有数据。

方案二:保持data为数组(适合需要顺序遍历的场景)

如果你的业务场景必须让data保持数组形式,也可以让每个数组元素是包含日期和对应数据的对象:

// 保持初始的数组结构
let obj = {
  "data_type": "data according to date",
  "status_message": "",
  "data": []
};

function addDailyData(newData) {
  const today = new Date().toISOString().split('T')[0];
  // 查找数组中是否已有当天的条目
  let todayEntry = obj.data.find(item => item.date === today);
  
  // 如果没有,就创建新条目并加入数组
  if (!todayEntry) {
    todayEntry = { date: today, data: [] };
    obj.data.push(todayEntry);
  }
  
  // 追加新数据到当天的数组
  todayEntry.data.push(newData);
}

最终效果

此时obj的结构是:

{
  "data_type": "data according to date",
  "status_message": "",
  "data": [
    {
      "date": "2024-05-20",
      "data": [
        { temp: 25, humidity: 60 },
        { temp: 26, humidity: 58 }
      ]
    },
    {
      "date": "2024-05-21",
      "data": [
        { temp: 24, humidity: 62 }
      ]
    }
  ]
}

这种方式适合需要按日期顺序遍历所有数据的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:00:48