JavaScript Array.sort() 方法详解与自定义排序

作者:小括号时间:2026-10-27 08:06:56浏览:642

本文深入解析JavaScript中Array.sort()方法的默认行为及自定义排序机制。通过示例展示如何传入比较函数,利用返回值控制元素交换,实现升序、降序及奇偶数分离等复杂排序逻辑,帮助开发者掌握灵活的数据排序技巧。

sort() 方法默认行为

在JavaScript中,Array.sort()函数用于对数组元素进行排序操作。默认情况下,该函数执行升序排列。具体实现代码如下所示:


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

自定义比较函数应用

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 

关于JavaScript数组Array.sort()方法的介绍至此结束,希望上述内容对需要相关知识的读者有所帮助。

作者最新文章