如何随机改变位置?

时间:2014-10-16 02:07:29

标签: javascript arrays arraylist

    var imgOut = function(){
    var outImg = Math.floor(Math.random()*slideRandom.length);
    document.getElementById("random").src = imgRandom[outImg];
    var outSlide = slideRandom[outImg]; 
    outSlide();
    var wr = Math.floor(Math.random()*imgRandom.length);
    var btl = Math.floor(Math.random()*bottle.length);


     document.getElementById("bottle2").src = bottle[outImg];
     document.getElementById("bottle1").src = bottle[btl];
     document.getElementById("bottle3").src = bottle[wr];

      /* try below but doesn't work or syntax error occured*/
     var position= ['bottle[outImg]','bottle[btl]','bottle[wr]'];
     var pos = Math.floor(Math.random()*position.length);
     var pos1 = position[pos];
      pos1();   
}

我试图做的是 使用不同的数组来获得不同随机位置的每个图像。 我已经做了不同的图像,但有三个不同的阵列放在随机位置不起作用。我做错了什么?或者如何更改上面的代码?

2 个答案:

答案 0 :(得分:0)

我完全不了解您的要求,但请考虑以下代码:

var setImage = function(id, src) {
   document.getElementById(id).src = src;
};

var chooseOne = function(array) {
   return array[Math.floor(Math.random()*array.length)];
};

var setRandomImages = function() {
   setImage("bottle1", chooseOne(bottle));
   setImage("bottle2", chooseOne(bottle));
   setImage("bottle3", chooseOne(bottle));
};

如果数组bottle是一个网址列表,则会执行某些内容,但我不能保证它会按您的意愿执行。

答案 1 :(得分:0)

 var position= ['bottle[outImg]()','bottle[btl]()','bottle[wr]()'];
 var pos = Math.floor(Math.random()*position.length);
 var pos1 = position[pos];
 //pos1();   
 eval( pos1 );
 // or
 (new Function("return pos1"))();