关于课程中动态生成id的方法---Math.random()

来源:

zjc_Dream

2017-02-15

随机生成id用的Math.random();

0-1之间的随机数不会出现重复吗?

我写了段代码测试了下,会卡死,有没有知道的会不会出现重复

 var sz = [];
for(var i=0;i<1000;i++){
var sj = Math.random();
sz.push(sj);
}
var arr = sz.sort();
for(var j = 0; j<arr.length - 1;j++){
if(arr[j] == arr[j+1]){
console.log('重复数字为:' + arr[j]);
}else{
console.log('没有重复数字');
}
}


写回答

2回答

Lyn

2017-02-15

这个是伪随机数函数,肯定是有几率重复的


var arr=[];

for( i=0;i<9;i++){

var n=Math.random();
arr.indexOf(n) === -1 ? arr.push(n) : i--;


}

0
1
zjc_Dream
非常感谢!
2017-02-15
共1条回复

zjc_Dream

提问者

2017-02-15

有几率出现是不是用它生成id的时候加上时间戳或者啥的更好

0
1
Lyn
时间戳不保险,最小单位是ms,1ms能执行很多次啊。 我那个检测的方法可以。 要不然只能通过算法去生成,都是有一定几率的。
2017-02-15
共1条回复

Web App用组件方式开发全站

用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告

3164 学习 · 516 问题

查看课程