在JavaScript中,如何在X分钟后自动从数组中删除元素?

在JavaScript中,如何在X分钟后自动从数组中删除元素?,javascript,arrays,Javascript,Arrays,我不知道这是不是一个愚蠢的想法。但假设我有一个数组,我不断地向它添加新元素。我想设置逻辑,这样存在5分钟的任何元素都将自动从该数组中删除 有什么解决办法吗 请注意,我不想保留任何元素的时间戳,我希望它们被自动删除。您可以将元素建模为对象,该对象除其值外还具有时间戳属性 您可以使用setInterval(比如100毫秒)调用一个方法,根据当前时间戳检查是否从数组中删除对象。您可以创建setInterval,该方法将清除项目,并在向数组添加项目时添加添加时间 var array = []; fun

我不知道这是不是一个愚蠢的想法。但假设我有一个数组,我不断地向它添加新元素。我想设置逻辑,这样存在5分钟的任何元素都将自动从该数组中删除

有什么解决办法吗


请注意,我不想保留任何元素的时间戳,我希望它们被自动删除。

您可以将元素建模为对象,该对象除其值外还具有时间戳属性


您可以使用setInterval(比如100毫秒)调用一个方法,根据当前时间戳检查是否从数组中删除对象。

您可以创建setInterval,该方法将清除项目,并在向数组添加项目时添加添加时间

var array = [];

function push(function(value) {
   array.push({
      value: value,
      time: Date.now()
   });
}

setInterval(function() {
  var time = Date.now();
  array = array.filter(function(item) {
     return time < item.time + (5000 * 60);
  }); 
}, 500);
var数组=[];
功能推送(功能(值){
array.push({
价值:价值,
时间:Date.now()
});
}
setInterval(函数(){
var time=Date.now();
array=array.filter(函数(项){
返回时间
您可以创建自己的数组类,每次按element时,您都可以
设置超时时间
将其删除。在这里,我们每秒按一个新元素,它们将在5秒内自动删除(不移动剩余的元素)

类MyArray扩展了数组{
推{
常数i1=此长度;
const i2=super.push(…参数);
设置超时(()=>{
for(设i=i1;i{a.push(i++);console.log(a);},1000);
设置超时(()=>{
间隙(t1);

},60000)
听起来像是自找麻烦,数组元素是通过它的索引访问的,所以如果你有
const myArray=[“你好”,“世界”]
myArray[0]
将是“你好”。但是5分钟后
myArray[0]
将是“世界”,如果是“世界”,则是未定义的也被删除。没有用于此的内置方法,您需要存储时间戳才能知道元素何时达到5分钟。因此,在当前状态下,此问题无法回答。您是否愿意使用
redis
此功能?Stackoverflow不打算成为讨论板来集思广益。您希望我希望你已经做出了设计选择,但是如果你在实现的某个子集上有具体的问题,那么请在a中发布你的代码,我们可以帮助你解决任何问题。好的,谢谢大家,我想我会坚持老办法~嗨,大家好,你的想法和上面的一样,我不明白为什么会投反对票,但无论如何,谢谢!谢谢我去看看。