gpt4 book ai didi

javascript - 如何按日期从对象中删除数据

转载 作者:行者123 更新时间:2023-11-28 14:17:18 26 4
gpt4 key购买 nike

如何从 13 小时前添加的对象中删除属性及其值

如果对象中的数据已保存超过 12 小时,我想删除该对象中的数据。

示例:

const myData = {
user1: {date: '', data: [...]}, // added to myData 1 hour ago
user2: {date: '', data: [...]}, // added to myData 5 hour ago
user3: {date: '', data: [...]}, // added to myData 12 hour ago
user4: {date: '', data: [...]}, // added to myData 13 hour ago
user5: {date: '', data: [...]}, // added to myData 15 hour ago
}

在这里,我想删除 user4user5,因为它们是在 12 小时前添加的。

最佳答案

您可以每小时运行一次 Object.entries() 迭代并检查旧数据(根据每次执行的需要设置 maxDate):

var obj = {
user1: {
date: new Date(2019,6,3,12,0,0)
},
user2: {
date: new Date(2019,6,3,13,0,0)
}
}

console.log(obj);

var maxDate = new Date(2019,6,3,12,30,0);
Object.entries(obj).forEach(x => {
const date = x[1].date;
if (date > maxDate) {
delete obj[x[0]]
}
})

console.log(obj);

<小时/>

编辑

使用间隔检查此示例

const checkEntries = function() {
var maxDate = getMaxDate();
Object.entries(obj).forEach(x => {
const date = x[1].date;
if (date > maxDate) {
delete obj[x[0]]
}
});
}

/*
* Get the time, 12 hours ago
*/
function getMaxDate() {
const now = new Date();
const now_tm = now.getTime();
const maxDate_tm = now_tm - (12*60*60*1000);
return new Date(maxDate_tm);
}

const timer = setInterval(checkEntries, 3600000);

关于javascript - 如何按日期从对象中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56866924/

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