1

假设我有一组图像。现在我想总是有相同的顺序,但不同的起始位置。我可以在 Backstretch 中强制索引,但不能在它已经启动第一张图像之前,所以很自然,我只想偏移数组。

['1','2','3','4']

应该变成,取决于随机变量

['3','4','1','2'].

我怎样才能做到这一点?

4

2 回答 2

1

TJ Crowders 的回答非常好,但如果要保留订单,这里是我的 2 美分

var arr = ['1', '2', '3', '4']; //your source array

var rand = Math.round(Math.random()*arr.length); //get the random
var part = arr.splice(0, rand); //split from start to that number
arr = arr.concat(part); //concat back to push the part to the end for the order to be preserved.
//get your item arr[0]

小提琴

于 2013-06-09T22:47:53.250 回答
0

您可以创建一个函数,通过随机生成的 n 数移动元素。

http://jsfiddle.net/Nghns/

function randShiftArr(arr) {
    var rand = Math.floor(Math.random() * arr.length);
    for (var i = 0; i < rand; i++)
        arr.unshift(arr.pop())
    return arr;
}

var arr = ['1', '2', '3', '4'];
var shifted = randShiftArr(arr);
alert(shifted.join());
于 2013-06-09T22:51:51.657 回答