let items = [
{ name: 'banana', type: 'food', quantity: 20 },
{ name: 'apple', type: 'food', quantity: 30 },
{ name: 'apple', type: 'fruit', quantity: 10 },
{ name: 'banana', type: 'fruit', quantity: 20 },
];
// 多条件排序函数
function multiSort(prop1, order1, prop2, order2) {
return function(a, b) {
let result = (a[prop1] < b[prop1]) ? -1 : (a[prop1] > b[prop1]) ? 1 : 0;
if(result === 0) {
result = (a[prop2] < b[prop2]) ? -1 * order2 : (a[prop2] > b[prop2]) ? 1 * order2 : 0;
}
return result * order1;
}
}
// 根据 name 升序,type 降序排序(1 为升序,-1 为降序)
items.sort(multiSort('name', 1, 'type', -1));
console.log(items);
js数组对象多条件排序
于 2024-07-24 16:17:41 首次发布