方法不是主流的。
有一组数据,大概10万个左右,每一单位的值不会大于30000,要求按照由大到小的顺序不重复输出。
//一段随机数,模拟用 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();
题外:
假如数组是自己生成,客服果果写的这段代码就很好了。(牛逼)
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(''));