JS数组排序sort排序数值、对象中属性、日期

第一种:数组中10以下值的sort默认排序

array.sort();

// sort默认排序数组中小于10的数的升序
let array = [1, 8, 9, 4, 5, 6, 7, 3, 2];
array.sort();
console.log(array);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

第二种:数组中10以上的值的排序

升序:array.sort((a, b) => a - b);

降序:array.sort((a, b) => b - a);

let array = [20, 11, 23, 4, 5, 6, 2, 8, 43, 65, 45, 67];
// 数组中值10以上的排序 回调函数传a,b a-b 升序
// (a,b) => a - b
array.sort((a, b) => a - b);
console.log("升序", array);
// [2, 4, 5, 6, 8, 11, 20, 23, 43, 45, 65, 67]

// 数组中值10以上的排序 回调函数传a,b b-a 降序
// (a,b) => b - a
array.sort((a, b) => b - a);
console.log("降序", array);
// [67, 65, 45, 43, 23, 20, 11, 8, 6, 5, 4, 2]

第三种:数组中对象属性值为数值排序

升序:array.sort((a, b) => a.属性 - b.属性);

降序:array.sort((a, b) => b.属性 - a.属性);

let array = [
  { name: "小凯", age: 20, },
  { name: "小明", age: 15, },
  { name: "小天", age: 26, },
  { name: "小虎", age: 13, },
  { name: "小红", age: 18, },
];
// 数组中对象属性值为数值的排序 回调函数传a,b a.属性 - b.属性 升序
// (a,b) => a.属性 - b.属性
array.sort((a, b) => a.age - b.age);
console.log("升序", array);
// {name: '小虎', age: 13}
// {name: '小明', age: 15}
// {name: '小红', age: 18}
// {name: '小凯', age: 20}
// {name: '小天', age: 26}

// 数组中对象属性值为数值的排序 回调函数传a,b b.属性 - a.属性 降序
// (a,b) => b.属性 - a.属性
array.sort((a, b) => b.age - a.age);
console.log("降序", array);
// {name: '小天', age: 26}
// {name: '小凯', age: 20}
// {name: '小红', age: 18}
// {name: '小明', age: 15}
// {name: '小虎', age: 13}

第四种:数组中对象属性值为日期排序

升序:array.sort((a, b) => (a.属性 > b.属性 ? 1 : -1));

降序:array.sort((a, b) => (a.属性 < b.属性 ? 1 : -1));

let array = [
  { date: "2022-03-19 12:01:00", count: 10, },
  { date: "2022-08-21 04:05:00", count: 10, },
  { date: "2022-05-11 17:02:00", count: 10, },
  { date: "2022-11-19 16:23:00", count: 10, },
  { date: "2022-01-09 02:42:00", count: 10, },
];
// 数组中对象属性值为日期排序 回调函数传a,b a.属性 > b.属性 ? 1 : -1 升序
// (a, b) => (a.属性 > b.属性 ? 1 : -1)
array.sort((a, b) => (a.date > b.date ? 1 : -1));
console.log("升序", array);
// {date: '2022-01-09 02:42:00', count: 10}
// {date: '2022-03-19 12:01:00', count: 10}
// {date: '2022-05-11 17:02:00', count: 10}
// {date: '2022-08-21 04:05:00', count: 10}
// {date: '2022-11-19 16:23:00', count: 10}

// 数组中对象属性值为日期排序 回调函数传a,b a.属性 < b.属性 ? 1 : -1 升序
// (a, b) => (a.属性 < b.属性 ? 1 : -1)
array.sort((a, b) => (a.date < b.date ? 1 : -1));
console.log("降序", array);
// {date: '2022-11-19 16:23:00', count: 10}
// {date: '2022-08-21 04:05:00', count: 10}
// {date: '2022-05-11 17:02:00', count: 10}
// {date: '2022-03-19 12:01:00', count: 10}
// {date: '2022-01-09 02:42:00', count: 10}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值