js 純數(shù)字不重復(fù)排列的另類方法
更新時(shí)間:2010年07月17日 20:29:48 作者:
有一組數(shù)據(jù),大概10萬個(gè)左右,每一單位的值不會(huì)大于30000,要求按照由大到小的順序不重復(fù)輸出。
參考無憂cosin的方法后(多謝),整理的方法如下
//一段隨機(jī)數(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ù)字作為下標(biāo)和值放到另一數(shù)組內(nèi),實(shí)現(xiàn)排序和不重復(fù)
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(''));
復(fù)制代碼 代碼如下:
//一段隨機(jī)數(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ù)字作為下標(biāo)和值放到另一數(shù)組內(nèi),實(shí)現(xiàn)排序和不重復(fù)
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ù)組是自己生成,客服果果寫的這段代碼就很好了。(牛逼)
復(fù)制代碼 代碼如下:
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)文章
一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象
我們?cè)跓倪^程中去干了別的事情,就屬于異步模式,異步模式中不會(huì)等待異步任務(wù)的結(jié)束才開始執(zhí)行下一個(gè)同步的任務(wù),都是開啟過后就立即執(zhí)行下一個(gè)任務(wù),下面這篇文章主要給大家介紹了如何通過一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象的相關(guān)資料,需要的朋友可以參考下2022-11-11
html的DOM中document對(duì)象anchors集合用法實(shí)例
這篇文章主要介紹了html的DOM中document對(duì)象anchors集合用法,實(shí)例分析了anchors集合的功能及使用技巧,需要的朋友可以參考下2015-01-01
教您去掉ie網(wǎng)頁(yè)加載進(jìn)度條的方法
相信很多同仁做的系統(tǒng)后到都是用frameset或iframe來加載不同頁(yè)面的,不可不知道大家有沒有注意到,當(dāng)frame框架中的頁(yè)面已經(jīng)加載完成后,可是ie瀏覽器的狀態(tài)欄還會(huì)一直顯示一個(gè)正在加載的狀態(tài)。2010-12-12
基于Bootstrap的網(wǎng)頁(yè)設(shè)計(jì)實(shí)例
這篇文章主要介紹了基于Bootstrap的網(wǎng)頁(yè)設(shè)計(jì)實(shí)例,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
javascript removeChild 導(dǎo)致的內(nèi)存泄漏
最近看到司徒正美的一篇文章《移除DOM節(jié)點(diǎn)》,文中說到在IE中移除容器類節(jié)點(diǎn),會(huì)引起內(nèi)存泄露。2010-08-08
JavaScript 閉包機(jī)制詳解及實(shí)例代碼
這篇文章主要介紹了JavaScript 閉包機(jī)制詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10
解讀TypeScript與JavaScript的區(qū)別
這篇文章主要介紹了TypeScript與JavaScript的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
使用JavaScript實(shí)現(xiàn)一個(gè)炫酷的羅盤時(shí)鐘
在探究前端動(dòng)畫時(shí),想到之前在鎖屏壁紙看到的羅盤時(shí)鐘,看著很是炫酷,于是說干就干,下面就跟隨小編一起來學(xué)習(xí)一下如何使用JS實(shí)現(xiàn)一個(gè)炫酷的羅盤時(shí)鐘效果吧2024-02-02

