网络编程
位置:首页>> 网络编程>> JavaScript>> 纯数字不重复排列的另类方法

纯数字不重复排列的另类方法

作者:张经纬 来源:张经纬的博客 发布时间:2009-12-04 18:25:00 

标签:排列,数字,随机

方法不是主流的。

有一组数据,大概10万个左右,每一单位的值不会大于30000,要求按照由大到小的顺序不重复输出。

参考无忧cosin的方法后(多谢),整理的方法如下

//一段随机数,模拟用
var baseNum=[];
for(var i= 0;i< 100000 ;i++){
 random = Math.floor(Math.random()*i);
 baseNum.push(random);
}
var baseNumLen = baseNum.length;
var numSubscript = [];
//将数字作为下标和值放到另一数组内,实现排序和不重复
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);

题外:

假如数组是自己生成,客服果果写的这段代码就很好了。(牛逼)

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&gt;0?1:-1
}
document.write(baseNum.join(''));

 

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com