jquery数组排序
jQuery 数组排序方法
jQuery本身没有专门的数组排序函数,但可以结合JavaScript原生方法或jQuery工具函数实现。以下是几种常见方法:
使用JavaScript原生sort()
JavaScript数组的sort()方法可直接对数组进行排序,默认按Unicode编码排序。如需自定义排序规则,需传入比较函数。
var arr = [3, 1, 4, 2];
arr.sort(function(a, b) {
return a - b; // 升序
// return b - a; // 降序
});
console.log(arr); // 输出: [1, 2, 3, 4]
对对象数组排序
若数组元素为对象,可通过比较对象的属性值实现排序:
var users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
{ name: "Charlie", age: 20 }
];
users.sort(function(a, b) {
return a.age - b.age; // 按age升序
});
console.log(users);
使用jQuery的$.map()结合排序
若需对jQuery对象(如DOM元素集合)排序,可先转换为数组:
var $items = $(".list-item");
var sortedItems = $items.get().sort(function(a, b) {
return $(a).data("price") - $(b).data("price");
});
$(".list-container").append(sortedItems);
字符串数组的本地化排序
对字符串数组排序时,建议使用localeCompare()处理语言差异:

var fruits = ["apple", "Orange", "banana"];
fruits.sort(function(a, b) {
return a.localeCompare(b, undefined, { sensitivity: 'base' });
});
console.log(fruits); // 输出: ["apple", "banana", "Orange"]
注意事项
sort()会修改原数组,如需保留原数组,需先拷贝:var newArr = arr.slice().sort();- 对大型数组排序时,考虑性能优化(如避免频繁DOM操作)。
- 复杂排序规则可结合多个属性条件:
users.sort(function(a, b) { if (a.age !== b.age) return a.age - b.age; return a.name.localeCompare(b.name); });






