数组的大小排序与去重

   数组去重这个题,我的第一个想法就是把重的去除,用arr.pop()的话只能弹最后一个,于是我就想遇上重复的就把这个数与最后一个交换再弹出。之间出现了很多问题。我仿照排序的写法每一个都和后面比较,只要相同就和最后一个交换然后弹出。但是这样元素的位置就会变得很乱,如果要交换的元素与在最后一个元素相同的话就会有重复的。之后我又改成每一个元素与除了它本身的其它元素比较,但是因为交换,总有一个特定的排序会有元素逃过扫描。之后我就想最好不要交换位置,我把重复的数取出来,但是这样不重复就去不出来,有多个重复就会取出很多。上午一直没改好。知道吃饭的时候我想吧重复的都换成空,输出的话空又看不出来,有一点投机取巧的感觉。后来想法终于完善,就是把重复的都换成一个相同的元素,在用比较的方法把不是这个元素的元素取出来。最后终于成功了。

  现在我把去重和排序放到一起,先去重然后排序:

<script>
arr=[4,4,4,4,4,3,4,4,4,4,5,6,67,6,7,6,6,55,5,5,4,5]
for(i=0;i<arr.length;i++){
for(a=i+1;a<arr.length;a++){
if(arr[a]==arr[i]){
arr[i]="a"
}
}
}
arr1=[]
for(b=0;b<arr.length;b++){
if(arr[b]!="a"){
arr1.push(arr[b])
}
}
for(c=0;c<arr1.length;c++){
for(d=c+1;d<arr1.length;d++){
if(arr1[c]>arr1[d]){
y=arr1[d]
arr1[d]=arr1[c]
arr1[c]=y
}
}
}
for(var x in arr1){
document.write(arr1[x]+",");
}
</script>

posted @ 2017-07-25 20:25  傻糊糊  阅读(1488)  评论(0编辑  收藏  举报