gpt4 book ai didi

javascript - 某些时间的空白数据 - 因此在我的数组中丢失。有没有办法填补缺失的时间?

转载 作者:行者123 更新时间:2023-12-01 01:26:36 25 4
gpt4 key购买 nike

我每小时都有一些数据并汇总/合并数组。

但是,data.Items 中有一些时间是空白的,因此我的数组将完全跳过数据点。

有没有一种方法可以让我遍历我的数据/数组并填充空白并在其旁边分配一个“0”?

  for(i=0; i<dataLength; i++){
var date = new Date(data[i].ctimestamp);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
var date = moment(date).tz("Pacific/Auckland").format("DD/MM/YY HH:mm");
dateArray.push({"date" : date});
}

这里是一个示例 - “11/12/18 05:00”和“11/12/18 06:00”丢失,因此它被完全跳过。

   [{
"date": "11/12/18 08:00",
"count": 5
},
{
"date": "11/12/18 07:00",
"count": 4
},
{
"date": "11/12/18 04:00",
"count": 6
}]

理想情况下,我希望它显示:

  [
{
"date": "11/12/18 08:00",
"count": 5
},
{
"date": "11/12/18 07:00",
"count": 4
},
{
"date": "11/12/18 06:00",
"count": 0
},
{
"date": "11/12/18 05:00",
"count": 0
},
{
"date": "11/12/18 04:00",
"count": 6
}]

最佳答案

我认为这简化了逻辑并产生您想要的结果:

const data = [
{
"date": "11/12/18 08:00",
"count": 5
},
{
"date": "11/12/18 07:00",
"count": 4
},
{
"date": "11/12/18 04:00",
"count": 6
}
];

let min = Number.MAX_VALUE;
let max = 0;

const dates = data.reduce((memo, {date, count}) => {
const time = new Date(date).getTime();
min = Math.min(min, time);
max = Math.max(max, time);
memo[time] = count;
return memo;
}, {});

const ONE_HOUR = 60 * 60 * 1000;

const dataOutput = [];

for (let i = min;i <= max;i += ONE_HOUR) {
dataOutput.push({
date: new Date(i).toLocaleString(),
count: dates[i] || 0
});
}

console.log(dataOutput)

关于javascript - 某些时间的空白数据 - 因此在我的数组中丢失。有没有办法填补缺失的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53716776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com