jquery数组排序
jQuery 数组排序方法
jQuery 本身不提供专门的数组排序函数,但可以利用 JavaScript 原生的 Array.prototype.sort() 方法结合 jQuery 的功能来实现排序。以下是几种常见的排序场景和实现方式:
基本数组排序
使用 JavaScript 的 sort() 方法对简单数组(如数字或字符串)进行排序:
var arr = [3, 1, 4, 2, 5];
arr.sort(function(a, b) {
return a - b; // 升序
});
console.log(arr); // 输出: [1, 2, 3, 4, 5]
降序排序:
arr.sort(function(a, b) {
return b - a; // 降序
});
对象数组排序
对包含对象的数组按某个属性排序:
var users = [
{ name: "John", age: 25 },
{ name: "Jane", age: 30 },
{ name: "Doe", age: 20 }
];
// 按 age 升序
users.sort(function(a, b) {
return a.age - b.age;
});
// 按 name 字母顺序
users.sort(function(a, b) {
return a.name.localeCompare(b.name);
});
jQuery 元素排序
对 jQuery 获取的 DOM 元素按某种规则排序:
var $items = $(".item"); // 获取所有 class 为 item 的元素
$items.sort(function(a, b) {
return $(a).data("price") - $(b).data("price"); // 按 data-price 属性排序
});
$items.appendTo($items.parent()); // 重新插入已排序的元素
多条件排序
结合多个条件进行排序:

var products = [
{ name: "Laptop", price: 1000, stock: 5 },
{ name: "Phone", price: 500, stock: 10 },
{ name: "Tablet", price: 500, stock: 3 }
];
products.sort(function(a, b) {
// 先按 price 升序,price 相同则按 stock 降序
if (a.price !== b.price) {
return a.price - b.price;
} else {
return b.stock - a.stock;
}
});
注意事项
sort()方法会直接修改原数组,而非返回新数组。- 默认的
sort()会将元素转换为字符串按 Unicode 排序,对数字排序需自定义比较函数。 - 对于复杂数据结构,建议使用 Lodash 或 Underscore 等库的
_.sortBy()方法。






