JavaScript 数组 sort() 方法详解与自定义排序
作者:木棉时间:2026-10-27 19:59:08浏览:149
本文介绍 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>作者最新文章
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
