昆明java培训
达内昆明广州春城路

18487146383

热门课程

js随机数是这么产生的!

  • 时间:2016-04-15
  • 发布:昆明Java培训
  • 来源:达内新闻

在JavaScript中,一般产生的随机数会重复,但是有时我们需要不重复的随机数,如何实现?下面昆明java培训中心来讲解三种方法产生不重复的随机数,并进行比较,看那种方法效率高。

方法一

思路:首先创建一个1到3000的数组,每次取一个数,然后去除数组中取出的这个数, 这样就可以实现永不重复。

代码如下:

var count=3000;

var originalArray=new Array;//原数组

//给原数组originalArray赋值

for (var i=0;i

originalArray[i]=i+1;

}

var d1=new Date().getTime();

for (i=0;i

var index=Math.floor(Math.random()*originalArray.length); //随机取一个位置

document.write(index+" , ");

originalArray.splice(index,1);

}

var d2=new Date().getTime();

document.write("运算耗时"+(d2-d1));

性能:耗时1528毫秒。

方法二

昆明java培训

思路:对方法一的slice方法进行改进,以提高效率。还是从原数组取出一个数, 然后让原数组的这个位置赋值为null。下一次取数时判断是否为null,如果是null就不取。

复制代码 代码如下:

var count=3000;

var originalArray=new Array;//原数组

//给原数组originalArray赋值

for (var i=0;i

originalArray[i]=i+1;

}

var d1=new Date().getTime();

for (var num,i=0;i

do{

num=Math.floor(Math.random()*count);

}while(originalArray[num]==null);

document.write(originalArray[num]+" , ");

originalArray[num]=null;

}

var d2=new Date().getTime();

document.write("运算耗时"+(d2-d1));

性能:耗时290毫秒。

方法三

思路:把原数组打散,然后再依次输出, 这样也可以做到随机永不重复,且效率更高。

代码如下:

var count=3000;

var originalArray=new Array;//原数组

//给原数组originalArray赋值

for (var i=0;i

originalArray[i]=i+1;

}

var d1=new Date().getTime();

originalArray.sort(function(){ return 0.5 - Math.random(); });

for (var i=0;i

document.write(originalArray[i]+" , ");

}

var d2=new Date().getTime();

document.write("运算耗时"+(d2-d1));

性能:耗时229毫秒。

通过性能分析,得出方法三为最佳方案。

达内教育和甲骨文有着很好的合作关系,对于java培训我们有着更好的资料和培训系统,选择昆明java培训,选择一个高薪的行业。

上一篇:第三届“达内发现杯”大学生互联网软件设计大奖赛完美收官
下一篇:复制功能调用实现方案

js利用控件对windows的操作实现原理

昆明java培训——js获取单选框或复选框值及操作

Android中的资源是指非代码部分,指外部文件。

js判断一个值在数组中

选择城市和中心
贵州省

广西省

海南省