我有5个对象,它们显示的顺序应该是随机的,为此,我决定创建一个数组,该数组将具有一个数字序列,这些数字表示访问对象的顺序(这将存储在用户cookie)。 如何创建一个随机的非重复数字序列,范围是0到4(数组从0开始)?
答案 0 :(得分:0)
您可以编写一个伪随机算法
const arr = [0,1,2,3,4];
const limit = 10;
var i = 0;
while(i++ < limit) {
const a = Math.floor(Math.random() * 5)
const b = Math.floor(Math.random( ) * 5)
if( a !== b){
// swap arr[a] and arr[b]
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
}
基本上,对于某些迭代,您可以交换数组中的任意两个随机索引