我的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中获得最后一个对象。
答案 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的回调函数之外。
愿它有所帮助。祝你好运。