如何使用while循环创建和使用整数数组?

时间:2013-11-07 13:28:29

标签: javascript jquery

我想为 last_foto 创建整数数组并添加到循环中。我试过这段代码:

var last_foto = [];

function img()
{
    for(var i=1; i<9; i++)
    {
         var foto_rand = Math.floor(3*Math.random()+i*3);
         $("#foto-"+ i).html('<img style="position: relative;" height="100%" src="slides/'+ foto_rand +'.jpg" />');
         var last_foto[i] = foto_rand;
    }
}

function rimg()
{
    var rand = Math.floor(8*Math.random()+1);
    var foto_rand = Math.floor(3*Math.random()+3*rand);
    while(last_foto[rand] == foto_rand) var foto_rand = Math.floor(3*Math.random()+3*rand);
    $("#foto-"+ rand).fadeOut(2000, function() {
         $("#foto-"+ rand).html('<img style="position: relative;" height="100%" src="slides/'+ foto_rand +'.jpg" />');
    });
    $("#foto-"+ rand).fadeIn(2000);
    var last_foto[rand] = foto_rand;
}

但是在我添加之后:

var last_foto = [];

var last_foto[i] = foto_rand;

while(last_foto[rand] == foto_rand) var foto_rand = Math.floor(3*Math.random()+3*rand);

var last_foto[rand] = foto_rand;

所有JavaScript代码都停止运行。

2 个答案:

答案 0 :(得分:0)

var last_foto[i] = foto_rand;

这是无效的。而且由于您已经初始化了数组,因此无需使用var关键字。

同时使用img()rimg()函数。

此外,您似乎正在重新声明许多变量。一旦变量被声明,它就不需要重新声明,除非你在一个不同的范围内并且想要用同名的本地覆盖全局(尽管我建议不要考虑它的可读性)

答案 1 :(得分:0)

在循环中使用内置的Array.push(item)Array.pop(),您可以跳过计数器