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

如何从动态更新的对象数组中提取最后三个元素的对象字面量

实现方法

直接调用JavaScript数组的原生slice()方法就能实现需求,该方法不会修改原数组,适配你持续从JSON更新原数组的使用场景。
slice()传入负数参数时会从数组末尾反向计数,slice(-3)即可直接提取数组的最后3个元素。

示例代码

// 你从JSON文件读取后得到的数据源示例
const jsonData = {
  "actuals": [
    {
      "cases": 4,
      "deaths": 1,
      "newCases": 3,
      "newDeaths": 3,
      "date": "2020-01-22"
    },
    {
      "cases": 5,
      "deaths": 2,
      "newCases": 5,
      "newDeaths": 3,
      "date": "2020-01-23"
    },
    {
      "cases": 9,
      "deaths": 5,
      "newCases": 7,
      "newDeaths": 3,
      "date": "2020-01-24"
    },
    {
      "cases": 15,
      "deaths": 7,
      "newCases": 3,
      "newDeaths": 3,
      "date": "2020-01-25"
    },
    {
      "cases": 19,
      "deaths": 3,
      "newCases": 5,
      "newDeaths": 4,
      "date": "2020-01-26"
    },
  ]
}

// 提取最后3个元素(最近三天数据)
const lastThreeDays = jsonData.actuals.slice(-3)
console.log(lastThreeDays)

输出结果

执行上述代码后,lastThreeDays的取值为:

[
  { cases: 9, deaths: 5, newCases: 7, newDeaths: 3, date: '2020-01-24' },
  { cases: 15, deaths: 7, newCases: 3, newDeaths: 3, date: '2020-01-25' },
  { cases: 19, deaths: 3, newCases: 5, newDeaths: 4, date: '2020-01-26' }
]

边界情况说明

  • 如果原数组长度小于3,slice(-3)会直接返回整个数组,不会抛出异常
  • 如果你需要单独提取每个对象的指定字段,可以配合map()方法处理:
// 示例:只提取日期和新增病例字段
const filteredData = lastThreeDays.map(item => ({
  date: item.date,
  newCases: item.newCases
}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:54:03