JavaScript的sort()方法可对数组排序,默认按字符串Unicode升序排列,会修改原数组;数字排序需用比较函数如(a, b) => a - b实现正确升序或降序;对象数组可通过属性值比较排序,如按年龄a.age - b.age或按姓名a.name.localeCompare(b.name);排序后可将结果动态展示在HTML页面中。

HTML本身不支持数组,数组是JavaScript中的数据类型。在网页开发中,我们通常使用JavaScript来处理数组排序,并将结果展示在HTML页面上。要对数组进行排序,最常用的方法是JavaScript的 sort() 方法。
sort() 方法基本用法
sort() 方法用于对数组元素进行排序,默认按字符串的Unicode码点顺序升序排列。它会直接修改原数组,而不是创建新数组。
示例:const fruits = ["banana", "apple", "orange"]; fruits.sort(); console.log(fruits); // 输出: ["apple", "banana", "orange"]
数字排序需要自定义比较函数
默认情况下,sort() 把所有元素转换为字符串比较,因此在排序数字时可能出现错误结果。
错误示例:const numbers = [10, 2, 25, 5]; numbers.sort(); console.log(numbers); // 输出: [10, 2, 25, 5] (不是预期结果)
要正确排序数字,需传入一个比较函数:
立即学习“Java免费学习笔记(深入)”;
- 比较函数返回值小于0:a排在b前面
- 等于0:a和b位置不变
- 大于0:a排在b后面
正确做法:
const numbers = [10, 2, 25, 5]; numbers.sort((a, b) => a - b); console.log(numbers); // 输出: [2, 5, 10, 25]
降序排列:
numbers.sort((a, b) => b - a); console.log(numbers); // 输出: [25, 10, 5, 2]
排序对象数组
如果数组元素是对象,可以通过指定对象的属性进行排序。
示例:按年龄排序用户列表
const users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 20 },
{ name: "Charlie", age: 30 }
];
users.sort((a, b) => a.age - b.age);
console.log(users);
// 结果按年龄从小到大排序
按姓名排序(字符串):
users.sort((a, b) => a.name.localeCompare(b.name));
localeCompare() 是推荐的字符串比较方法,支持多语言排序规则。
基本上就这些。使用 sort() 方法可以灵活地对各种类型的数组进行排序,关键是根据数据类型选择合适的比较逻辑。在实际项目中,常结合HTML展示排序后的数据列表,比如动态更新表格或列表内容。











