js 純數(shù)字不重復排列的另類方法
更新時間:2010年07月17日 20:29:48 作者:
有一組數(shù)據(jù),大概10萬個左右,每一單位的值不會大于30000,要求按照由大到小的順序不重復輸出。
參考無憂cosin的方法后(多謝),整理的方法如下
//一段隨機數(shù),模擬用
var baseNum=[];
for(var i= 0;i< 100000 ;i++){
random = Math.floor(Math.random()*i);
baseNum.push(random);
}
var baseNumLen = baseNum.length;
var numSubscript = [];
//將數(shù)字作為下標和值放到另一數(shù)組內(nèi),實現(xiàn)排序和不重復
for (var i =0;i<basenumlen ;i++){
if(numSubscript[baseNum[i]] == undefined)numSubscript[baseNum[i]]=baseNum[i];
}
//去除空的值并顛倒一下
baseNum = numSubscript.join(',').replace(/([,]+)/ig, ',').split(',').reverse();
document.write(baseNum);
題外:
假如數(shù)組是自己生成,客服果果寫的這段代碼就很好了。(牛逼)
var baseNum=[],tmp={},v;
for(var i= 0;i< 100000 ;i++){
tmp[Math.floor(Math.random()*i)]=true;
};
i=0;
for (var k in tmp){
baseNum[i++]=k;
};
baseNum.sort(fn);
function fn(x,y) {
return x-y>0?1:-1
}
document.write(baseNum.join(''));
復制代碼 代碼如下:
//一段隨機數(shù),模擬用
var baseNum=[];
for(var i= 0;i< 100000 ;i++){
random = Math.floor(Math.random()*i);
baseNum.push(random);
}
var baseNumLen = baseNum.length;
var numSubscript = [];
//將數(shù)字作為下標和值放到另一數(shù)組內(nèi),實現(xiàn)排序和不重復
for (var i =0;i<basenumlen ;i++){
if(numSubscript[baseNum[i]] == undefined)numSubscript[baseNum[i]]=baseNum[i];
}
//去除空的值并顛倒一下
baseNum = numSubscript.join(',').replace(/([,]+)/ig, ',').split(',').reverse();
document.write(baseNum);
題外:
假如數(shù)組是自己生成,客服果果寫的這段代碼就很好了。(牛逼)
復制代碼 代碼如下:
var baseNum=[],tmp={},v;
for(var i= 0;i< 100000 ;i++){
tmp[Math.floor(Math.random()*i)]=true;
};
i=0;
for (var k in tmp){
baseNum[i++]=k;
};
baseNum.sort(fn);
function fn(x,y) {
return x-y>0?1:-1
}
document.write(baseNum.join(''));
相關(guān)文章
html的DOM中document對象anchors集合用法實例
這篇文章主要介紹了html的DOM中document對象anchors集合用法,實例分析了anchors集合的功能及使用技巧,需要的朋友可以參考下2015-01-01javascript removeChild 導致的內(nèi)存泄漏
最近看到司徒正美的一篇文章《移除DOM節(jié)點》,文中說到在IE中移除容器類節(jié)點,會引起內(nèi)存泄露。2010-08-08解讀TypeScript與JavaScript的區(qū)別
這篇文章主要介紹了TypeScript與JavaScript的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12