本文深入解析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()方法的介绍至此结束,希望上述内容对需要相关知识的读者有所帮助。