Chcę wykonać tablicę z zmiennymi, a zmienne te powinny zmienić się po danym czasie. Oto mój kod:

var cookieArray =  new Array(window.setInterval(myCallback, 2000));

function myCallback() {
    cookie1  =  Math.floor((Math.random() * 810) + 0);
    cookie2  =  Math.floor((Math.random() * 810) + 0);
    cookie3  =  Math.floor((Math.random() * 810) + 0);
    cookie4  =  Math.floor((Math.random() * 810) + 0);
    cookie5  =  Math.floor((Math.random() * 810) + 0);
    cookie6  =  Math.floor((Math.random() * 810) + 0);
    cookie7  =  Math.floor((Math.random() * 810) + 0);
    cookie8  =  Math.floor((Math.random() * 810) + 0);
    cookie9  =  Math.floor((Math.random() * 810) + 0);
    cookie10 =  Math.floor((Math.random() * 810) + 0);
}
0
Lupos 24 czerwiec 2017, 13:07

3 odpowiedzi

Najlepsza odpowiedź

Tworzyłeś tablicę, ale nie inicjując go. Aby zainicjować tablicę, w twoim przypadku należy użyć arrayName[0]=value.

 var cookieArray =[];
 
window.setInterval(myCallback, 2000);

function myCallback() {
        cookieArray[0]  =  Math.floor((Math.random() * 810) + 0);
        cookieArray[1]  =  Math.floor((Math.random() * 810) + 0);

        console.log(cookieArray);
}
        
1
Pawan Kumar 24 czerwiec 2017, 10:16

Podejście, które wziąłeś, jest OK, ale zawiera wiele błędów programistycznych. Po pierwsze, aby zadeklarować tablicę, musisz wykonać następujące czynności:

var cookieArray = new Array(10);

Co oznacza cookieArray będzie miał 10 elementów. Aby uzyskać dostęp do każdego z jego elementów, możesz użyć cookieArray[i] gdzie i odnosi się do elementu i + 1 TH w tablicy.

W końcu zrobiłbym:

var cookieArray = new Array(10);

setInterval(function() {
    for(int i = 0; i < cookieArray.length; i++) {
         cookieArray[i] = Math.floor((Math.random() * 810) + 0);
    }
}, 2000);

Tutaj, setInterval jest taka sama jak window.setInterval.

0
Xatyrian 24 czerwiec 2017, 10:18

Możesz też:

var cookieArray=(new Array(10)).fill(0);//create a new Array with 0s

setInterval(function(){
   //refill array every 2seconds
   cookieArray=cookieArray.map(()=>Math.floor((Math.random() * 810) + 0));
},2000);
1
Jonas Wilms 24 czerwiec 2017, 10:55