hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › JavaScript › Js中数组如何排序
查看: 1418|回复: 3
打印 上一主题 下一主题

Js中数组如何排序

[复制链接]

2249

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2014-10-27 13:19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

0

主题

856

帖子

2

博客

bnlnk

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-08-19 10:09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

sort()方法只能对字符串进行排序

需要进行自定义排序:冒泡、选择

0

主题

826

帖子

2

博客

Java攻城狮

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-08-20 09:09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

sort()方法排序  js中排序会把数据转换成字符串然后得到unicode码 比较unicode码排序

所以有时排序并不理想 可以通过java中数组的排序算法冒泡排序进行排序

沙发
发表于2016-09-01 14:32:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<script>
//定义函数
function fun(){
    var arr=["张三","王五","李四"];
    arr.sort();
    alert(arr);
}
    
</script>
<div id="info"></div>
<input type="text"><br>
<input type="button" value="按钮" onclick="fun()">

0

主题

1700

帖子

0

博客

song

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-01 17:54:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<script>
function  fun(){
     var arr=[5,3,1,4,2];
    //可用sort方法直接排序,输出结果
    alert(arr.sort());
     var arr1=[8,34,12,3,6,28];
     //使用冒泡法进行排序
     for(i=0;i<arr1.length-1;i++){
      for(j=0;j<arr1.lenght-1-i;j++){
        if(arr1[j]>arr1[j+1]){
           t=arr1[j];
           arr1[j]=arr1[j+1];
           arr1[j+1]=t;
        }
      }
     }
     alert(arr1);
}
</script>

<div id="11"></div>

<input type="text"  id="01"  >

<input type="button" value="按钮" onclick="fun()">

0

主题

1104

帖子

2

博客

桃子++

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-01 20:17:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

可以利用快速排序,冒泡排序和插入排序,选择排序,希尔排序等等

下面列举的是利用sort方法进行排序

window.onload=function(){

        var array=[0,1,2,44,4,324,5,65,6,6,34,4,5,6,2];

        array=sorting.shellSort(array);

        alert(array);

}

var sorting={

    //利用sort方法进行排序

    systemSOrthodox:function(arr){

        return arr.sort(function(a,b){

            return a-b;

});

}

}

0

主题

1402

帖子

0

博客

马鹏磊

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-03 10:07:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

<script>
 function fun(){
  //sort方法排序字符串可以 排数字不可以
  
  //数组排序方法 冒泡排序法
  arr=[1,5,2,4,8,93,5];
  for(i=0;i<arr.length;i++){
   for(j=0;j<arr.length-1;j++){
    //j j+1
    if(arr[j]>arr[j+1]){
     t=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=t;
    
    }
   }
  }
  alert(arr);
 }


</script>

<html>
 <body>
  <form>
   <input type="text" value="1,5,2,4,8,93,5">
   <input type="button" value="排序" onclick="fun()">
  </form>

 </body>
</html>

0

主题

1450

帖子

0

博客

Sarbr

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 11:56:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

array.sort()   方法顺序排

array.reverse()     逆序排序

0

主题

1451

帖子

0

博客

gaoye

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 13:31:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

sort() 该方法的功能是将数组元素排序(汉字按拼音的字母顺序)。

reverse() 该方法的功能是将数组中的元素整个反转顺序。


var myA=new Array("张三", "李四","王五");

myA.sort()             数组变为 ["李四","王五","张三"]

myA.reverse()        数组变为 ["王五","李四","张三"]

0

主题

1576

帖子

0

博客

liufangyuan

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 13:47:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<script>
    //第一种方法 sort
    var arr=["a","d","e","f","c","b"];
    arr.sort();
    document.write(arr);//abcdef  正确
    
    var a=[1,100,2,20,5];
    a.sort();
    document.write(a);//1 100 2 20 5 存在问题
    
    //改正
    var b=[1,100,2,20,5];
    b.sort(
        function(x,y){
            return x-y;
        }
    );
    document.write(b);//1 2 5 20 100
    //第二种方法  冒泡排序法 升序
    var d=[1,100,2,20,5];
    for(i=0;i<d.length;i++){
        for(j=0;i<d.length-1;j++){
            //j j+1比较 逆序则交换
            if(d[j]>d[j+1]){
               t=d[j];
               d[j]=d[j+1];
               d[j+1]=t;
            }
        }
    }
    document.write(d);
</script>

0

主题

1636

帖子

0

博客

renmihe

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 13:50:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<script>
function fun(){
    var arr=["io","a5","zwf","g89","s42"];
    //对字符串进行排序
    arr.sort();
    
    //对数字进行排序
    var arr2=[12,1,56,4,31];
    //冒泡排序法
    for(i=0;i<arr2.length;i++){
         for(j=0;j<arr2.length-1;j++){
             if(arr2[j]>arr2[j+1]){
                 t=arr2[j];
                 arr2[j]=arr2[j+1];
                 arr2[j+1]=t;
             }
         }
    }
    alert(arr2);
}    
</script>
<body onload="fun();">
     
</body>

0

主题

1721

帖子

0

博客

XIAOC

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 19:55:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

使用sort()方法;

如果数组是数字,从小到大排序

如果是字母,根据unicode编码排序

如果是汉字,会根据汉字拼音排序

0

主题

1510

帖子

0

博客

zhangjialong

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-02 20:08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<script>
    function fun(){
        //字符串
        var arr=["za2","ddf","ewer","f345","c123","b776"];
        
        arr=[3,4,1,5,2];
        
        arr.sort();
        
        //数字,自己写排序算法,进行排序
        arr2=[13,24,1,15,2];
        //冒泡排序
        for(i=0;i<arr2.length;i++){
            for(j=0;j<arr2.length-1;j++){
                //j  j+1
                if(arr2[j] > arr2[j+1]){
                    t=arr2[j];
                    arr2[j]=arr2[j+1];
                    arr2[j+1]=t;
                }
            }
        }
        alert(arr2);
        
    }
</script>
<input type="button" value="点击" onclick="fun()">
WR

0

主题

1674

帖子

0

博客

WR

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-03 08:21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

arr.sort();

如果是排序字母可以使用rort排序

如果是排序数字则以hashcode码排序,转成字符串

<script>
 function fun(){
 //冒泡排序法
 //字符串使用sort排序
  var arr=["a","b","c","d","e","a","b","c","d"];
  arr.sort();
  alert(arr);
  }
 function fun2(){
   //数字排序法
  arr2=[1,12,3,2,33,23,13,56];
  //冒泡排序法
  for(i=0;i<arr2.length;i++){
   for(j=0;j<arr2.length-1;j++){
    if(arr2[j]>arr2[j+1]){
     t=arr2[j];
     arr2[j]=arr2[j+1];
     arr2[j+1]=t;
    }
    
   }
  }
  alert(arr2);
 } 

</script>
<input type="button" value="按钮" onclick="fun()">
<input type="button" value="按钮" onclick="fun2()">

 

0

主题

1458

帖子

0

博客

梦紫菱0124

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-03 19:15:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

答:

注意sort方法只能对String方法排序,但是不能对数字进行排序

<script>
function fun(){
var arr=["za2","ef","aw","jy","ag","juf"];
arr=[3,4,1,5,2];
arr=[13,1,15,12,4];
//冒泡排序
for(i=0;i<arr2.length;i++){
for(j=0;j<arr2[i].length;j++){
//两个数相比
//j j+1
if(arr2[j]<arr2[j+1]){
t=arr2[j];
arr2[j]=arr2[j+1];
arr2[j+1]=t;
}
}
}
arr.sort(arr);
}
</script>
<html>
<body onload="fun()">
</body>
</html>

0

主题

1518

帖子

0

博客

Cracia

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-05 18:45:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

<script>

//字符串排序

    function fun(){
        var arr=["b","e","r","a","c","s","z"];    
        arr.sort();
        alert(arr);

    }

//数字排序

    function fun2(){
        arr2=[13,34,23,1,78,45];    
        for(i=0;i<arr2.length;i++){
            for(j=0;j<arr2.length-i-1;j++);
                if(arr2[j]>arr2[j+1]){
                    t=arr2[j];
                    arr2[j]=arr2[j+1];
                    arr2[j+1]=t;    
                }
        }
        alert(arr2);
    }
</script>

0

主题

872

帖子

0

博客

杨柳

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-20 19:54:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Math.sort()

如果是数字的话就不行了就得自己写排序的方法了

用冒泡排序

0

主题

752

帖子

0

博客

CDS 123

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-10-26 09:40:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

字符串可以用sort方法排序

数字需要自己写算法进行排序

0

主题

1902

帖子

0

博客

王之神判

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-12 17:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sort(function a(x,y){return x-y;});

0

主题

1932

帖子

0

博客

740317431

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-12 18:24:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sort()方法进行排序

0

主题

1694

帖子

0

博客

wulinan

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-14 22:43:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。 如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。

0

主题

651

帖子

0

博客

hanqian

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-15 17:06:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

使用sort()进行排序

var Arr = new Array("a","hsd","escs", "tgfh","ngfbv","qzc","lkhn");

 Arr.sort();

冒泡排序:

var arr=new Arr(12,3,465,7,32,88,0,76,5,99,22);
for(i=0;i<arr.length;i++){
    for(j=0;j<arr.length-1;j++{
	    if(arr[j]>arr[j+1]){
	        var n = arr[j];
	        arr[j+1] = array[j];
	        arr[j] = n;
	     }
	 }
}
L J

0

主题

670

帖子

0

博客

L J

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-21 19:29:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<html>

<head>
</head>


<script>
  function fun(){
  //字符串排序可以用 sort()
     var arr=["d","a","e","d","c","b"];
    
     arr.sort();
     
     //数字排序 自己写排序算法,进行排序
      arr2=[14,32,6,89,4];
      
      for(i=0;i<arr.length;i++){
         for(j=0;j<arr2.length-1;j++){
            if(arr2[j]>arr2[j+1]){
               t=arr2[j];
               arr2[j]=arr2[j+1];
               arr2[j+1]=t;
            }        
            
         }
      }
     alert(arr2);
     
  }
</script>

<body onload="fun()">

</body>

</html>

0

主题

45

帖子

2

博客

晴朗的天空

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-24 08:49:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1.  JS中数组如何排序?
     > sort( ): 字符串排序
          按照Uniclde码排序
          数字时,先把数字转字符串,然后按照Hashcode码排序
          所以: 排字符串可以,排数字不可可以   


 > 数字的话,需要自己写排序方法
        按照javase时的排序即可,例:冒泡排序:
 
  
 
 
 
 <script>
  function fun(){
   var arr = ["","","",""];
   arr2 = [3,23,12,10,1];
   arr.sort( );
   arr2.sort( );
  }
 //冒泡排序
 for(i=0;i<arr2.length;i++){
  for(j=0;j<arr2.length-1;j++){
   if(arr2[j] > arr2[j+1]){
    t = arr2[j];
    arr2[j] = arr2[j+1];
    arr[j+1] = t;
   }
  }
 } 
 </script> 
 
 
 
 <html>
  <body onload="fun();"> 
  </body>
 </html>

zxx

0

主题

1135

帖子

0

博客

zxx

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-27 17:43:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

字符串是按照第一个字母的Unicode码进行排序,数字要自己写排序算法进行排序



站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, , Processed in 0.195171 second(s), 9 queries .

Powered by javakc! X1.0

© 2004-2014 javakc

f1208.com 备案号:京ICP备14030918号-1

返回顶部