Я использую случайную функцию для случайного перемещения между 4 слайдерами, вот мой код:
var swipers = [swiper1, swiper2, swiper3, swiper4];
setInterval(function(){
var rand = Math.floor(Math.random() * 4);
swipers[rand].slideNext();
}, 3000);
}
Как мне поступить, если я хочу рандомизировать между slideNext() и slidePrev()? Я пробовал много вещей, как это:
var direction = ['slideNext()', 'slidePrev()'];
var swipers = [swiper1, swiper2, swiper3, swiper4];
setInterval(function(){
var randx = Math.floor(Math.random() * 4);
var randy = Math.floor(Math.random() * 2);
swipers[randx].direction[randy];
}, 3000);
Но это не работает, вероятно, по очевидным причинам, но, пожалуйста, помогите мне понять, почему это не работает. И как я мог бы достичь этого?
Ты довольно близко! Просто измените, как вы устанавливаете направление, и я думаю, что вы поняли:
swipers[randx][direction[randy]]();
Также удалите скобки из вашего массива и просто оставьте там имена функций.
Просто поместите имя метода в массивы, без скобок. Затем используйте его для индексации объекта и назовите результат этого.
Вы также должны использовать <arrayname>.length
вместо жесткого кодирования длин при получении случайного индекса, поэтому вам не нужно изменять его, если вы добавите больше указателей или указателей.
var direction = ['slideNext', 'slidePrev'];
var swipers = [swiper1, swiper2, swiper3, swiper4];
setInterval(function(){
var randx = Math.floor(Math.random() * swipers.length);
var randy = Math.floor(Math.random() * direction.length);
swipers[randx][direction[randy]]();
}, 3000);