JavaScript 数组 sort() 方法详解与自定义排序

作者:木棉

时间:2026-10-27

浏览:148

本文介绍 JavaScript 中数组的 sort() 方法。默认情况下,sort() 将元素转换为字符串并按字符编码顺序排序,可能导致数字排序异常。通过传入比较函数,可自定义排序逻辑。比较函数接收两个参数,返回负数、零或正数以决定顺序。示例展示了数字数组的正确排序方式。

文章目录

JavaScript 数组 sort() 方法详解与自定义排序

示例代码如下:

 
<html>
<head>
<title>数组的sort()方法</title>
<script>
/* 
sort() 方法用于对数组元素进行排序。
首先,该方法会直接修改原数组,不会创建副本。
其次,若调用时未提供参数,数组元素将按字母顺序(即字符编码顺序)进行排序。
具体而言,排序依据是字符编码值。
为确保正确比较,数组元素需先转换为字符串(如有必要)。
若需按其他标准排序,必须提供比较函数。
该函数用于比较两个值,并返回一个数字以说明它们的相对顺序。
比较函数应包含两个参数 a 和 b,其返回值规则如下:
若 a 小于 b,排序后 a 应排在 b 之前,函数应返回小于 0 的值。
若 a 等于 b,函数应返回 0。
若 a 大于 b,排序后 a 应排在 b 之后,函数应返回大于 0 的值。
*/ 
var arr = [2,4,8,1,22,3];
var arrSort= arr.sort();//未正确排序,因数组元素先转为字符串再排序
document.write("默认的排序数组为:" + arrSort);//输出结果为:1,2,22,3,4,8
document.write("<br/>");
//定义比较函数
function mysort(a,b){
return a-b;
} 
var arrSort2 = arr.sort(mysort);//传入比较函数进行排序
document.write("传入比较参数的数组为:" + arrSort2);//实现正确排序
document.write("<br/>");
document.write("原数组为:" + arr);
</script>
</head>
<body>
<div id="time"></div>
</body>
</html>

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章