做云课堂的作业时遇到一要求,实现刷新页面时显示不同数据,(数组中20个据,页面加载10个)。思路就是从0-19中随机生成10个不同的数,让数组取下标输出数据。

下面是在num的范围内生成n个不重复的数。例如从10以内随机生成5个不同的数randomNum(10,5);

function randomNum(num,n) {
if(typeof num!=="number"||typeof n!=="number") return false; //对象检测
var aNum=[];
if (num<=n) {
for (var j = 0; j < num; j++) {
aNum.push(j);
};
return aNum;
} //如果n大于num就生成0到num-1的每一个数
else{
for (var i = 0; i < num; i++) {
var random=Math.round(Math.random()*num);
if (aNum.indexOf(random)==-1) {
aNum.push(random);
if (aNum.length==n) {
return aNum;
};
}
}
}
} //从0至num-1中随机获得n个不同的数的数组
上面这个有重大bug,谢谢评论区大神提醒,改进如下:
function randomNum(num,n) {
if(typeof num!=="number"||typeof n!=="number") return false; //对象检测
var aNum=[];
if (num<=n) {
for (var j = 0; j < num; j++) {
aNum.push(j);
};
return aNum;
} //如果n大于num就生成0到num-1的每一个数
else{
while(aNum.length<n){
var random=Math.round(Math.random()*num);
if (aNum.indexOf(random)==-1) {
aNum.push(random);
}
}
return aNum;
}
}

  

js从数组中随机获取n个不重复的数据的更多相关文章

  1. 从数组中随机取n条不重复的数据

    工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 ...

  2. js 从数组中随机获取一个值

    // 获取随机数 var rand = Math.floor( Math.random() * this.peoples.length ); // 随机从数组中取出某值(不会改变原数组) var da ...

  3. php 从一个数组中随机获取固定数据

    <?php /* * * 通过一个标识,从一个数组中随机获取固定数据 * $arr 数组 * $num 获取的数量 * $time 随机固定标识值,一般用固定时间或者某个固定整型 * */ fu ...

  4. JS从数组中随机取出几个数组元素的方法

    原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· v ...

  5. js从数组中随机取出不同的元素

    前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应 ...

  6. js在数组arr中随机获取count数量的元素

    // 在数组arr中随机获取count数量的元素; const getRandomArrayElements = (arr, num) => { // 新建一个数组,将传入的数组复制过来,用于运 ...

  7. JS案例之8——从一个数组中随机取数

    近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...

  8. PHP中如何在数组中随机抽取n个数据的值 - array_rand()?

    PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明 ...

  9. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

随机推荐

  1. Unity本地数据存储---Sqlite和JSON

    2014-05-04更新 SqliteDatabase.cs这个文件的初始方法有问题,具体是如果指定URL已经存在了DB文件,就不会重新覆盖DB文件. 这导致我们修改之后的DB文件无法产生效果. 本人 ...

  2. Druid学习之路 (二)Druid架构

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9608812.html 转载请注明出处 Druid架构 Druid原本就设计为一个容易操作的面向云的多进 ...

  3. tomcat源码调试2

    前面对tomcat做了一些简单的认识,下面将tomcat源码调试环境搭建起来. 可以参考官网的搭建方法,这里是按照网上的maven管理的方式搭建. 大概步骤是: 1.下载tomcat 9的源码,一般是 ...

  4. 多媒体文件格式分析 MP3文件结构及编解码流程

    多媒体文件格式分析 http://blog.csdn.net/taniya001/article/details/7962864 多媒体文件格式分析 MP3文件结构及编解码流程 http://www. ...

  5. python_threading模块实现多线程详解(转)

    综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势 ...

  6. FFmpeg 入门(3):播放音频

    本文转自:FFmpeg 入门(3):播放音频 | www.samirchen.com 音频 SDL 提供了播放音频的方法.SDL_OpenAudio 函数用来让设备播放音频,它需要我们传入一个包含了所 ...

  7. matlab基本操作总结

    1.clear;//清除工作平台变量2.close all;//关闭打开的图形窗口3.I = imread('C:\Users\dell\Desktop\rice.jpg');//读取图像,存储在I数 ...

  8. js 图表处理之Echar

    官网学习链接:http://echarts.baidu.com/tutorial.html#5%20分钟上手%20ECharts 案例代码: <!DOCTYPE html> <htm ...

  9. 20145333《Java程序设计》第3次实验报告

    20145333<Java程序设计>第3次实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 实验步骤 git设置用户名邮箱,ssh公钥 用git上传代 ...

  10. Bag类的接口的实现与测试(课上测试补做)

    Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...