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

如何遍历array输出近7天角色level与当前日期的等级差值

近7天角色等级差值计算方案

核心逻辑

  • 先计算近7天的时间边界:当前时间减去7天的毫秒数(7*24*60*60*1000)
  • 从记录数组中筛选出所有时间早于7天边界的记录,取其中最新一条的等级作为7天前基准等级;如果没有更早的记录,基准值可按业务需求设置初始值(示例默认取0)
  • 筛选出所有时间在近7天范围内的记录,按时间升序排序后取最后一条的等级作为当前等级;如果近7天无记录,当前等级等于基准等级
  • 最终差值 = 当前等级 - 基准等级,正值为等级提升,负值为等级下降

示例代码(JavaScript)

// 传入等级记录数组,返回近7天等级差值
function get7DayLevelDiff(levelRecords) {
  // 1. 计算7天前的时间戳
  const now = Date.now();
  const sevenDaysAgo = now - 7 * 24 * 60 * 60 * 1000;

  // 2. 拆分记录为7天前、7天内两组
  const before7dRecords = [];
  const in7dRecords = [];
  levelRecords.forEach(item => {
    const itemTime = new Date(item.date).getTime();
    itemTime < sevenDaysAgo ? before7dRecords.push(item) : in7dRecords.push(item);
  });

  // 3. 提取7天前基准等级
  let baseLevel = 0;
  if (before7dRecords.length) {
    // 7天前的记录按时间降序,取最新一条的等级
    before7dRecords.sort((a,b) => new Date(b.date).getTime() - new Date(a.date).getTime());
    baseLevel = Number(before7dRecords[0].level);
  }

  // 4. 提取当前等级
  let currentLevel = baseLevel;
  if (in7dRecords.length) {
    // 7天内的记录按时间升序,取最新一条的等级
    in7dRecords.sort((a,b) => new Date(a.date).getTime() - new Date(b.date).getTime());
    currentLevel = Number(in7dRecords[in7dRecords.length - 1].level);
  }

  return currentLevel - baseLevel;
}

// 用示例数组测试:假设当前时间为2020-01-03 12:00:00
const testArray = [{
  "date": "2019-12-19 15:53:21",
  "level": "365"
}, {
  "date": "2019-12-20 04:18:24",
  "level": "366"
}, {
  "date": "2019-12-30 06:57:15",
  "level": "370"
}, {
  "date": "2019-12-30 22:19:30",
  "level": "371"
}, {
  "date": "2020-01-02 05:45:14",
  "level": "369"
}, {
  "date": "2020-01-02 09:55:15",
  "level": "370"
}, {
  "date": "2020-01-02 18:42:11",
  "level": "367"
}, {
  "date": "2020-01-03 05:15:08",
  "level": "368"
}];
console.log(get7DayLevelDiff(testArray)) // 输出2,对应从366级升到368级的差值

边界说明

  • 近7天无等级变动记录时,差值返回0
  • 无早于7天的历史记录时,可根据业务需求调整基准等级的初始默认值
  • 若level字段存在非数字值,可自行添加格式校验逻辑

内容的提问来源于stack exchange,提问作者Otávio C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:42:02