javascript - 如何根据特定对象过滤对象数组?
问题描述
我有这个从 JSON 文件不断更新的对象数组(最后一个索引总是每天更新到一个新的日期)。我的目标是使用这个对象数组的最后三个索引(最后三天)并从每个对象中获取对象字面量。我怎样才能做到这一点?
对象数组
"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 并迭代 3 次并继续添加
actuals[ptr]["newCases"]
const 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" }, { "cases": 26, "deaths": 3, "newCases": 6, "newDeaths": 5, "date": "2020-01-27" }, { "cases": 34, "deaths": 5, "newCases": 9, "newDeaths": 3, "date": "2020-01-28" }, { "cases": 56, "deaths": 6, "newCases": 14, "newDeaths": 5, "date": "2020-01-29" },]
let actLength = actuals.length ;
let total = 0;
for ( let i = actLength - 3; i < actLength; i++) {
total += actuals[i]["newCases"]
}
console.log(`Average: ${total/3}`)
//return ( total / 3 )
推荐阅读
- reactjs - 带钩子的 React 17 jsx 转换
- r - Ggplot问题打印类POSIXct和R组着色
- excel - 谷歌表格复制功能
- c# - 没有给出与 xxx 的所需形式参数“id”相对应的参数
- spring - Spring application properties (map) from docker environment
- python-3.x - Nginx 和 USWGI 的请求块大小无效
- unix - 如何通过 RDP 网关配置使用 mRemote 应用程序连接到 Unix 服务器 (ssh)
- html - 带有许多 lang 标签的 CSS
- mysql - 更新数据库 mysql 上的记录时出现 Pymysql Tkinter 错误
- c# - 命令行解析器解析值即使未指定?