js从数组中随机获取n个不重复的数据
做云课堂的作业时遇到一要求,实现刷新页面时显示不同数据,(数组中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个不重复的数据的更多相关文章
- 从数组中随机取n条不重复的数据
工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 ...
- js 从数组中随机获取一个值
// 获取随机数 var rand = Math.floor( Math.random() * this.peoples.length ); // 随机从数组中取出某值(不会改变原数组) var da ...
- php 从一个数组中随机获取固定数据
<?php /* * * 通过一个标识,从一个数组中随机获取固定数据 * $arr 数组 * $num 获取的数量 * $time 随机固定标识值,一般用固定时间或者某个固定整型 * */ fu ...
- JS从数组中随机取出几个数组元素的方法
原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· v ...
- js从数组中随机取出不同的元素
前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应 ...
- js在数组arr中随机获取count数量的元素
// 在数组arr中随机获取count数量的元素; const getRandomArrayElements = (arr, num) => { // 新建一个数组,将传入的数组复制过来,用于运 ...
- JS案例之8——从一个数组中随机取数
近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...
- PHP中如何在数组中随机抽取n个数据的值 - array_rand()?
PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明 ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
随机推荐
- Python-argparse-命令行与参数解析
import argparse import numpy as np import cv2 import os import numpy.random as npr from dface.core.u ...
- ruby中的方法查找
ruby中的方法调用都是 对象.方法 的形式,那么对象如何找到这个方法呢? 首先必须了解祖先链的概念,祖先链就是从一个类开始,到它的父类,再到父类的父类...一直到最终的起点(ruby中是BasicO ...
- ionic调用摄像头
须知ionic是借助于cordova来实现与底层硬件的交互的 我假设你已经全局安装了cnpm.ionic.cordova,并且配置好了安卓环境 我以下demo是建立在官方提供的模板上进行的ionic ...
- ubuntu 可能的依赖包,安装过程中根据需要安装
/*************依赖包安装****************/下面是可能的依赖包,安装过程中根据需要安装 build-essential - libglib2.-dev libpng3 li ...
- Spring-1-A Post Robot(HDU 5007)解题报告及测试数据
Post Robot Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K Problem Description ...
- IOS开发-数据库总结
关于数据存储概念: 数据结构: 基本对象:NSDictionary.NSArray和NSSet这些对象. 复杂对象:关系模型.对象图和属性列表多种结构等. 存储方式: 内存:内存存储是临时的,运行时有 ...
- oracle中的异常处理方法
异常处理create or replace procedure prc_get_sex (stuname student.name%type) as stusex student.sex%type; ...
- Nginx基础笔记
压力测试工具:ab ab -n 请求数 -c 并发数 请求url Nginx: Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. 特点 ...
- ArrayList原理分析(重点在于扩容)
首先,ArrayList定义只定义类两个私有属性: /** * The array buffer into which the elements of the ArrayList are stored ...
- 《学习OpenCV3》目录和全书划分
一 概述 1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...