`

js数组 sort方法的分析 转自NorthSnow HOME

阅读更多
js数组 sort方法的分析
javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下:
    var arrA = [6,2,4,3,5,1];
    arrA.sort();
    document.writeln(arrA);
//结果是:1,2,3,4,5,6 

   sort() 方法可以接受一个 方法为参数 ,这个方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

实例如下:

 

    var arrA = [6,2,4,3,5,1];
    
/**//*arrA.sort();
    document.writeln(arrA);
    
*/

    
function desc(x,y)
    
...{
        
if (x > y)  
            
return -1;
        
if (x < y)          
            
return 1;
    }

    
function asc(x,y)
    
...{
        
if (x > y)  
            
return 1;
        
if (x < y)          
            
return -1;
    }


    arrA.sort(desc);    
// sort by desc
    document.writeln(arrA);
    document.writeln(
"<br>");
    arrA.sort(asc);    
//sort by asc
    document.writeln(arrA);

//输出结果:
6,5,4,3,2,1 
1,2,3,4,5,6 

另外,可以直接把一个无名函数直接放到sort()方法的调用中。如下的例子是将奇数排在前面,偶数排在后面,例子如下:

 

        var arrA = [6,2,4,3,5,1];
        arrA.sort( 
function(x, y) ...{
            
if (x % 2 ==0)  
                
return 11;
            
if (x % 2 !=0)        
                
return -1;
            }

        );
       document.writeln(arrA);

//输出:1,5,3,4,6,2 
 
分享到:
评论
3 楼 yet8telecom 2011-08-23  
good
2 楼 imain 2011-01-03  
最后的结果是:1,5,3,4,6,2
1 楼 lixiaoqing 2010-11-26  
最后一个输出结果应该是3,5,1,4,2,6 吧?

相关推荐

    javascript setTimeout和setInterval 的区别

    如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法: 例如: tttt=setTimeout(‘northsnow()’,1000); clearTimeout(tttt); 或者: tttt=setInterval(‘northsnow()’,1000); clearInteval&#40;tttt&#41...

    javascript setTimeout和setInterval计时的区别详解

    如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:例如:(1): 代码如下:t=setTimeout(‘northsnow()’,1000);clearTimeout(t);(2):t=setInterval(‘northsnow()’,1000);clearInteval&#40;t&#41;;...

    Sql Server下数据库链接的使用方法

    这种跨数据库的交互性极大地扩展了SQL Server的功能,使得数据集成、迁移和分析变得更加便捷。下面我们将详细探讨如何在SQL Server中设置和使用数据库链接。 首先,创建数据库链接分为两种主要方法: 1. **使用SQL...

    实例学SAP ABAP编程

    1. `delete itab where name = 'northsnow'`:基于特定条件删除记录。 2. `delete itab index i`:使用索引i删除一行。 3. 使用`loop at`循环遍历内表并删除,如`loop at itab. delete itab. endloop.`,这等同于`...

Global site tag (gtag.js) - Google Analytics