返回

javascript——返回一个对象,其中包含具有相同小时时间戳的属性的平均值

发布时间:2022-02-22 00:39:48 532
# 数据

我有一个对象数组,看起来像这样:

[{
  TIMESTAMP: "2021-05-07 03:32:00.0",
  PM2_5: "27.4",
  PM10: "67.9",
  CO: "0.058",
},
{
  TIMESTAMP: "2021-05-07 03:42:00.0",
  PM2_5: "27.0",
  PM10: "67.3",
  CO: "0.026",
},
{
  TIMESTAMP: "2021-05-07 04:08:00.0",
  PM2_5: "27.0",
  PM10: "67.3",
  CO: "0.066",
}
...]

还有更多关于ofc的数据。我想做一个函数,将我的数组作为参数,并返回一个对象。在这个返回对象中,我想将所有具有相同时间戳的对象合并在一起,并对它们的所有属性进行平均。我不知道他们将拥有哪些房产,而且数量可能会有所不同。例如,对于3h处的所有对象,我将

{
  TIMESTAMP: "2021-05-07 03:00:00.0",
  PM2_5: "27.2",
  PM10: "67.3",
  CO: "0.046",
}

对于3h范围,我将得到一个对象中所有数据的平均值。我想在阵列中尽我所能做到这一点。我试图使用reduce,或者做一个大循环,但我的问题是,我不想精确循环中的键,我想让它适用于所有可能存在的键。

function getAverage(datas) {
 const res = []
 datas.forEach((data, i) => {
  if (moment.tz(data.TIMESTAMP, 'YYYY-MM-DD HH:mm:ss', TIMEZONE).hour() === moment.tz(data[i + 1].TIMESTAMP,'YYYY-MM-DD HH:mm:ss', TIMEZONE).hour()) {
    data += data.PM10
  }
  res.push(data / i)
  i = 0
 })
 return res
}

我现在就这么做了,但这离我想要的结果还很远

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像