如何将来自setInterval的数据推送到数组中

时间:2018-01-29 01:03:08

标签: javascript arrays reactjs object redux

我的setInterval函数应该将数据注入数组。它是对象 - {id: 0}然后{id:1}{id:2} ...--被注入,并且每次超时后id的值都会发生变化。但是,为了获得[{id:1}, {id:2}, {id:3}...]之类的内容,我不会将其填充到数组中,而是会获得相同的值[{id:1}]。我使用推送功能:

const arr = [];
arr.push(this.props.test);
console.log(arr);

this.props.test只是setInterval每次触发后的新对象。与我的期望相反,我总是在我的console.log中获得最后一个对象。

2 个答案:

答案 0 :(得分:1)

如果我找对你,你需要这样的东西:



const arr = [];
let counter = 0;

setInterval(() => {
  arr.push({id: counter++});
  console.log(JSON.stringify(arr));
}, 2000);




说明: setInterval的第一个参数是每2秒执行一次的函数。在此函数中,您将创建一个新对象{id: counter++}并将其推送到您的数组。请注意,您需要在setInterval之外创建数组 - 否则它将被覆盖

答案 1 :(得分:0)

我的猜测,您可以将代码'const arr = []'放在setInterval的回调函数中。这使得数组arr在每次间隔到来时都被初始化为空。因此,当你在console.log中使用arr时,它总是只打印出代码推送的对象的最后一次。 您需要将代码'const arr = []'放在setInterval的回调函数之外。

愿它有所帮助。祝你好运。