我正在使用随机函数在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);
但是它可能不起作用,可能是出于明显的原因,但是请帮助我理解为什么它不起作用。而我怎么可能实现呢?
答案 0 :(得分:2)
只需将方法名称放入数组中即可,不带括号。然后使用它为对象建立索引,并调用该对象的结果。
在获得随机索引时,还应该使用<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);
答案 1 :(得分:1)
您非常接近!只需更改您设置方向的方式,我想您就知道了:
swipers[randx][direction[randy]]();
也可以从数组中删除括号,然后将函数名称保留在那里。