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();   
}

То, что я пытаюсь сделать, это разные массивы, чтобы получить разные изображения в разных случайных позициях. Я сделал разные изображения, чтобы получить, но с тремя разными массивами для случайного размещения не работает. что я сделал не так? или как изменить код выше?

0
Steve 16 Окт 2014 в 06:07
Несколько раз вы переписываете функцию, которую вы должны были назвать «выбрать элемент случайным образом из этого массива», и вы делаете это неправильно по крайней мере один раз. Кроме того, вы выбираете (случайно) строку и пытаетесь выполнить ее, как если бы это была функция. Решите эти две проблемы и посмотрите, что произойдет.
 – 
Michael Lorton
16 Окт 2014 в 06:11
Спасибо за ответы. понять, что положить строку в массив не работает. но не понял, что вы написали в fisrt.
 – 
Steve
16 Окт 2014 в 06:19

2 ответа

Я не совсем понимаю ваши требования, но рассмотрите этот код:

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 представляет собой список URL-адресов, это сделает что-то, хотя я не могу гарантировать, что он сделает то, что вы хотите.

0
Michael Lorton 16 Окт 2014 в 06:24
 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"))();
0
nono_pop 16 Окт 2014 в 06:31