從數(shù)組中隨機(jī)取x條不重復(fù)數(shù)據(jù)的JS代碼
工作中經(jīng)常遇到有關(guān)數(shù)組的一些操作
1. 從數(shù)據(jù)中隨機(jī)取x條不重復(fù)的數(shù)據(jù) (PS:下面的S.each是KISSY.each方法,大家可以改為for循環(huán))
/*
從數(shù)組arr中隨機(jī)取x條不重復(fù)的數(shù)據(jù)
*/
function myRand(arr,num){
var newArr = [];
rand(num); //隨機(jī) x 個(gè)
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.從對象中隨機(jī)取x條不重復(fù)的數(shù)據(jù)
/*
隨機(jī)從對象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);
});
//隨機(jī)取3個(gè)
var newArr = myRand(arr,3);
S.each(newArr,function(b){
console.log(obj[b]);
})
};
3. 去除數(shù)組的重復(fù)項(xiàng)
/*
去除數(shù)組的重復(fù)項(xiàng)
*/
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));
}
- 用js實(shí)現(xiàn)隨機(jī)返回?cái)?shù)組的一個(gè)元素
- js數(shù)組中如何隨機(jī)取出一個(gè)值
- js獲取數(shù)組任意個(gè)不重復(fù)的隨機(jī)數(shù)組元素
- js實(shí)現(xiàn)從數(shù)組里隨機(jī)獲取元素
- JS 在指定數(shù)組中隨機(jī)取出N個(gè)不重復(fù)的數(shù)據(jù)
- JavaScript數(shù)組隨機(jī)排列實(shí)現(xiàn)隨機(jī)洗牌功能
- JS生成不重復(fù)隨機(jī)數(shù)組的函數(shù)代碼
- js 數(shù)組隨機(jī)字符串(廣告不重復(fù))
- JS隨機(jī)洗牌算法之?dāng)?shù)組隨機(jī)排序
- Javascript從數(shù)組中隨機(jī)取出不同元素的兩種方法
相關(guān)文章
JavaScript實(shí)現(xiàn)獲取年月日時(shí)間的方法總結(jié)
這篇文章主要為大家學(xué)習(xí)介紹了JavaScript如何實(shí)現(xiàn)獲取年月日以及各種格式的時(shí)間,文中的示例代碼簡潔易懂,感興趣的小伙伴可以了解一下2023-08-08JavaScript canvas實(shí)現(xiàn)跟隨鼠標(biāo)事件
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)跟隨鼠標(biāo)事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02javascript下利用for( in )語句 獲得所有事件名稱的代碼
2008-02-02用JavaScript對JSON進(jìn)行模式匹配 (Part 2 - 實(shí)現(xiàn))
在上一篇文章里,我們完成了 Dispatcher 類的接口設(shè)計(jì),現(xiàn)在我們就來考慮一下如何實(shí)現(xiàn)這個(gè)類。2010-07-07JavaScript開發(fā)時(shí)的五個(gè)注意事項(xiàng)
JavaScript開發(fā)時(shí)的五個(gè)注意事項(xiàng)講述了表單事件、鏈接、循環(huán)優(yōu)化、匿名函數(shù)、字符串連接等優(yōu)化技巧,需要的朋友可以參考一下2007-12-12