前言:前几天写到一个程序,用到要使用不同随机数的方法,结果愣是整了半天没整出来,说来也是惭愧啊(亏我还是软件工程的学生,其实这个问题以前遇到过,只是我逃避了,哎,自己刨的坑终究会把自己陷进去,╮(╯▽╰)╭)好了,废话不多说“上菜”了

 (function () {

     var N = 20;
var arr = [];
var ranArr = [];
for (var i = 0; i < N; i++) {
arr[i] = i;
}
console.log(arr);
do {
var index = Math.floor(Math.random() * arr.length);
var flag = true;
ranArr.push(arr[index]);
arr.splice(index, 1);
if (arr.length == 0) {
flag = false;
}
} while (flag); console.log(ranArr);
})();

解释下代码:代码的主要思路是,先生成个0到N的数组,根据此数组的长度产生随机数的最大值index,循环以下动作,设置标志位flag,用于判断arr数组的长度,每次循环把原数组index位置的数据加入到ranArr数组中去,arr数组切除这个数,直到arr数组长度为0.

最新文章

  1. JAVA编程思想(第四版)学习笔记----11.5 List,11.6迭代器
  2. Centos7下面配置静态IP
  3. parted LVM划分4T磁盘,在线扩展1.5T
  4. 如何使官方提供的AppRTCDemo 运行在自己搭建的server(官方提供的apprtc)上(官方的server源码)
  5. pl/sql死锁oracle
  6. C#知识点总结【1】
  7. Java程序员必备的6款最佳开发工具
  8. SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?(转)
  9. Hadoop 2.6.0编译on mac
  10. Android IntentService 与Alarm开启任务关闭任务
  11. Svn入门
  12. Golang 1.3 发布时间。最终找到地方下载。
  13. css3技巧属性之text-overflow
  14. iOS获取各种数据方法整理以及IDFA与IDFV使用环境
  15. 什么是HTTP Referer?
  16. 20155324《网络对抗》Exp1 PC平台逆向破解(5)M
  17. C# 之 HttpResponse 类
  18. python练习题-day10
  19. 面试简单整理之JVM
  20. Jersey框架

热门文章

  1. inux c编程:读写锁
  2. 使用 Python 为 KVM 编写脚本,第 1 部分: libvirt
  3. 数组的includes操作
  4. 项目中nodejs包高效升级插件npm-check-updates
  5. python基础18 ---多态与绑定方法
  6. HackerRank - angry-children 【排序】
  7. shell一些方法
  8. 跨平台(I版到K版)迁移实践总结
  9. css3条纹边框效果
  10. Docker 架构篇