从数组中随机取x条不重复数据的JS代码_Javascript教程-查字典教程网
从数组中随机取x条不重复数据的JS代码
从数组中随机取x条不重复数据的JS代码
发布时间:2016-12-30 来源:查字典编辑
摘要:工作中经常遇到有关数组的一些操作1.从数据中随机取x条不重复的数据(PS:下面的S.each是KISSY.each方法,大家可以改为for循...

工作中经常遇到有关数组的一些操作

1. 从数据中随机取x条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环)

复制代码 代码如下:

/*

从数组arr中随机取x条不重复的数据

*/

function myRand(arr,num){

var newArr = [];

rand(num); //随机 x 个

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.从对象中随机取x条不重复的数据

复制代码 代码如下:

/*

随机从对象obj中取x条

*/

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));

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类