从数组中随机取n条不重复的数据
工作中经常遇到有关数组的一些操作
1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环)
/*
1 从数组arr中随机取n条不重复的数据
*/
function myRand(arr,num){
var newArr = [];
rand(num); //随机 n 条 function rand(k){
if(k==0){
return;
}
var index = Math.floor(Math.random() * arr.length);
var flag = true;
S.each(newArr,function(v){
if(v == arr[index]){
flag = false;
}
});
if(flag){
newArr.push(arr[index]);
k--;
}
rand(k);
}
return newArr;
}
2.从对象中随机取n条不重复的数据
/*
随机从对象obj中取n条
*/
function myRand(){
var S = KISSY;
var obj={
'01':{name:'a'},
'02':{name:'b'},
'03':{name:'c'},
'04':{name:'d'},
'05':{name:'e'},
'06':{name:'f'},
'07':{name:'g'},
'08':{name:'h'},
'09':{name:'i'},
'10':{name:'g'}
};
var arr = [];
S.each(obj,function(v,k){
arr.push(k);
});
//随机取3个
var newArr = myRand(arr,3);
S.each(newArr,function(b){
console.log(obj[b]);
})
};
3. 去除数组的重复项
/*
去除数组的重复项
*/
function uniqArr(arr){
function toObject(a) {
var o = {};
for (var i=0, j=a.length; i<j; i=i+1) {
o[a[i]] = true;
}
return o;
};
function keys(o) {
var a=[], i;
for (i in o) {
if (o.hasOwnProperty(i)) { // 这里, YUI源码中是lang.hasOwnProperty(o, i)
a.push(i);
}
}
return a;
};
return keys(toObject(arr));
}
从数组中随机取n条不重复的数据的更多相关文章
- js从数组中随机获取n个不重复的数据
做云课堂的作业时遇到一要求,实现刷新页面时显示不同数据,(数组中20个据,页面加载10个).思路就是从0-19中随机生成10个不同的数,让数组取下标输出数据. 下面是在num的范围内生成n个不重复的数 ...
- 【转】oracle 中随机取一条记录的两种方法
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...
- 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录
从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...
- JS案例之8——从一个数组中随机取数
近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...
- SQL语句:随机取3条不重复的记录
随机取3条不重复的记录 [Access]select top 3 * from tablename order by rnd(id); [SqlServer]select top 3 * from t ...
- SQL 从数据库中随机取n条数据
用NEWID()方法. * ,NEWID() AS random from [toblename] order by random 其中的1可以换成其他任意整数,表示取的数据条数
- JS从数组中随机取出几个数组元素的方法
原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· v ...
- PHP中如何在数组中随机抽取n个数据的值 - array_rand()?
PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明 ...
- SQL 在表中随机取数据
在一张10万行产品表(Product)中,随机取10条数据的几种方式: SET STATISTICS IO ON SELECT TOP 10 ID FROM dbo.Product(NOLOCK) W ...
随机推荐
- 深刻理解C#的传值调用和传引用调用
传值调用和传引用调用是几乎所有主流语言都会涉及到的问题,下面我谈谈我对C#中传值调用和传引用调用的理解. 1. 一般对C#中传值调用和传引用调用的理解 如果传递的参数是基元类型(int,float等) ...
- POJ 1321 棋盘问题(DFS & 状压DP)
用DFS写当然很简单了,8!的复杂度,16MS搞定. 在Discuss里看到有同学用状态压缩DP来写,就学习了一下,果然很精妙呀. 状态转移分两种,当前行不加棋子,和加棋子.dp[i][j]中,i代表 ...
- C#创建https请求并使用pfx证书
常规情况下创建Web请求,并获取请求数据的代码如下: WebRequest req = WebRequest.Create(url); req.Timeout = 15000; WebResponse ...
- 理解iPhone高清分辨率的问题
理解iPhone高清分辨率的问题可以有两个关键切入点: 1.像素坐标普通屏是480*320,Retina屏是960*640,而逻辑坐标系同为480*320: 2.Retina屏幕一个逻辑坐标点坐标包含 ...
- ab的排列 aa , ab ba,bb
package reverseList; public class Main { static void perm(char c[],int lev,char ans[]) { if(c.length ...
- NOIP2001 数的划分
题二 数的划分(20分) 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问 ...
- Word恢复文本转换器-修复损坏的WORD文件
第一步:找任意一个未损坏的文件打开word,新建的或者是已有的好的word文档,在文档的工具-选项-常规中,选中“打开时确认转换”复选框,并按确定. 第二步:点击word软件左上角的 文件-打开,找到 ...
- PC-计算机动行命令里的密密!系统管理程序!
1. gpedit.msc-----组策略 3. Nslookup-------IP地址侦测器 4. explorer-------打开资源管理器 5. logoff---------注销 ...
- sublime text高亮less
1.打开sublime,ctrl+shift+p打开命令面板,找到package control:install Package,然后选择less2css,回车. 2.继续ctrl+shift+p打开 ...
- Filter过滤器(1)
Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ht ...