这篇文章主要介绍了JS在指定数组中随机取出N个不重复数据的方法,需要的朋友可以参考下


<script language="javascript">
//从一个给定的数组arr中,随机返回num个不重复项
function getArrayItems(arr, num) {
  //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
  var temp_array = new Array();
  for (var index in arr) {
  temp_array.push(arr[index]);
  }
  //取出的数值项,保存在此数组
  var return_array = new Array();
  for (var i = 0; i<num; i++) {
  //判断如果数组还有可以取出的元素,以防下标越界
  if (temp_array.length>0) {
  //在数组中产生一个随机索引
  var arrIndex = Math.floor(Math.random()*temp_array.length);
  //将此随机索引的对应的数组元素值复制出来
  return_array[i] = temp_array[arrIndex];
  //然后删掉此索引的数组元素,这时候temp_array变为新的数组
  temp_array.splice(arrIndex, 1);
  } else {
  //数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
  break;
  }
  }
  return return_array;
}

//测试
var ArrList=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33];
alert(getArrayItems(ArrList,6));
</script>

最新资讯
京东子业务IPO背后:多项业务已经步入正轨

京东子业务IPO背后:多

在被拼多多追赶了这么几年后,其已经出现后继乏力的现象
库克看好远程办公:苹果不会“回到过去的样子”

库克看好远程办公:苹果

苹果首席执行官蒂姆·库克(Tim Cook)称,员工远程工作的能
5G时代会有何生态变迁?智能应用愈丰但安全挑战加剧|新浪5G峰会

5G时代会有何生态变迁

在生态变迁分论坛上,奇安信董事长齐向东、完美世界CEO
苏宁收购家乐福中国一周年 张近东:家乐福的本土竞争力更强了

苏宁收购家乐福中国一

张近东认为,零售业已进入全场景时代,传统的卖场数字化转
立法者突然造访亚马逊仓库 对其员工保护提出质疑

立法者突然造访亚马逊

据报道,两名来自美国密歇根州的议员在参观了亚马逊公司
理想汽车将在全尺寸SUV采用NVIDIA自动驾驶智能芯片ORIN

理想汽车将在全尺寸SU

理想汽车与人工智能计算公司NVIDIA及NVIDIA中国合作伙
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,