创建自动填充javascript数组

创建自动填充javascript数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想用javascript填充两个数组,以模拟及时更新图表。 为此,我希望填充两个图表 var array1=[1,2,3,…]//以秒为单位的时间 var array2=[10,15,12,…]//任意随机数 每个元素应以1秒的间隔推送到数组中 已尝试,但阵列没有得到我想要的更新 var time = []; var value = []; $(document).ready(function() { update(); }); function update() {

我想用javascript填充两个数组,以模拟及时更新图表。 为此,我希望填充两个图表

var array1=[1,2,3,…]//以秒为单位的时间 var array2=[10,15,12,…]//任意随机数

每个元素应以1秒的间隔推送到数组中

已尝试,但阵列没有得到我想要的更新

var time = [];
var value = [];

$(document).ready(function() {
    update();
});

    function update() {
      var index = 0;
      setTimeout(function () {
        index++;
        time.push(index);
        value.push(Math.random() * (0 - 200));
        console.log(time)
        console.log(value)
        update();
      }, 1000);
    }

您应该移动
var index=0在更新功能之外

var-time=[];
var值=[];
$(文档).ready(函数(){
更新();
});
var指数=0;
函数更新(){
setTimeout(函数(){
索引++;
时间推送(索引);
value.push(Math.floor(Math.random()*200));
console.log(时间)
console.log(值)
更新();
}, 1000);
}

您应该移动
var index=0在更新功能之外

var-time=[];
var值=[];
$(文档).ready(函数(){
更新();
});
var指数=0;
函数更新(){
setTimeout(函数(){
索引++;
时间推送(索引);
value.push(Math.floor(Math.random()*200));
console.log(时间)
console.log(值)
更新();
}, 1000);
}

var index=0
它没有得到更新,因为在每次迭代中将它重置为
0
。将其移出
update()
fn

所以,试试看:

var index = 0 ; // Outside the update fn scope
var time = [];
var value = [];

$(document).ready( update );

function update() {
    setTimeout(function () {
        time.push(++index);
        value.push( ~~(Math.random() * 200 ) + 1);
        console.log(time)
        console.log(value)
        update();
    }, 1000);
}

var index=0
它没有得到更新,因为在每次迭代中将它重置为
0
。将其移出
update()
fn

所以,试试看:

var index = 0 ; // Outside the update fn scope
var time = [];
var value = [];

$(document).ready( update );

function update() {
    setTimeout(function () {
        time.push(++index);
        value.push( ~~(Math.random() * 200 ) + 1);
        console.log(time)
        console.log(value)
        update();
    }, 1000);
}

您使用的是
setInterval
(与您使用的
setTimeout
几乎相同)

不同之处在于,
setTimeout
在指定的超时后运行函数一次,而
setInterval
重复运行

还请检查
clearInterval
(将在
setInterval
的返回值上运行),它会停止函数的执行

// to start
var interval = setInterval(function () { /* ... */ }, 1000);

// to stop
clearInterval(interval);

在切换函数后,您也不再需要在自身内部调用
update()

您所使用的是
setInterval
(与您所使用的
setTimeout
几乎相同)

不同之处在于,
setTimeout
在指定的超时后运行函数一次,而
setInterval
重复运行

还请检查
clearInterval
(将在
setInterval
的返回值上运行),它会停止函数的执行

// to start
var interval = setInterval(function () { /* ... */ }, 1000);

// to stop
clearInterval(interval);

切换函数后,您也不再需要在函数内部调用
update()

会发生什么?将索引放入函数内部的愚蠢错误。已正确更新。如果问题是主要错误的来源,请不要特别修复您的问题。否则答案看起来很傻。会发生什么呢?把索引放在函数中的愚蠢错误。已正确更新。如果问题是主要错误的来源,请不要特别修复您的问题。否则答案看起来会很傻。我怀疑我读的不是同一本书。。。让我们澄清一下我怀疑我没有读到同样的东西。。。让我们澄清一下评论