在“最小”和“最大”数字之间创建随机的非重复数字序列

时间:2019-02-12 16:32:27

标签: javascript arrays node.js sequence

我有5个对象,它们显示的顺序应该是随机的,为此,我决定创建一个数组,该数组将具有一个数字序列,这些数字表示访问对象的顺序(这将存储在用户cookie)。 如何创建一个随机的非重复数字序列,范围是0到4(数组从0开始)?

1 个答案:

答案 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;
   }
}

基本上,对于某些迭代,您可以交换数组中的任意两个随机索引