js的sort升序降序排序

对数组的字母进行排序

let arr = [
  {age: "asgja"},
  {age: "dxcx"},
  {age: "cxcx"},
  {age: "assx"},
  {age: "cddddc"},
  {age: "rddc"},
  {age: "hdddc"}
];
arr.sort((a, b) => a.age.localeCompare(b.age));

console.log(arr);
  1. localeCompare() 是一个字符串方法,用于比较两个字符串并确定它们的字典顺序。

  2. 当 a.age.localeCompare(b.age) 返回一个负数时,表示 a.age 在字典顺序上位于 b.age 之前,因此 a 应该排在 b 的前面。

  3. 当 a.age.localeCompare(b.age) 返回零时,表示两个字符串相等,它们的相对顺序不会改变。

  4. 当 a.age.localeCompare(b.age) 返回一个正数时,表示 a.age 在字典顺序上位于 b.age 之后,因此 b 应该排在 a 的前面。

    通过这种方式,数组 arr 中的对象将根据其 age 属性的字母顺序进行升序排序。

根据时间降序排序

let poolList = [
  {createTime: "2024-07-11 11:57:53"},
  {createTime: "2024-05-11 15:57:53"},
  {createTime: "2024-01-11 15:57:53"}
]
poolList.sort((a, b) => {
    const dateA = new Date(a.createTime);
    const dateB = new Date(b.createTime);
    return dateB - dateA; // 降序
});
  1. 调用 sort 方法: poolList.sort(…) 调用了数组的 sort() 方法,这会就地修改 poolList 数组,按照指定的比较函数进行排序。

  2. 比较函数: (a, b) => {…} 是传递给 sort() 方法的比较函数。这个函数接收两个参数 a 和 b,它们代表数组中待比较的任意两个元素。

  3. 日期转换: const dateA = new Date(a.createTime); 和 const dateB = new Date(b.createTime); 这两行代码将 a 和 b 对象中的 createTime 字符串转换为 Date 对象。这样可以正确地比较日期和时间。

  4. 返回值: return dateB - dateA; 这一行计算了 dateB 和 dateA 的时间差。如果 dateB 晚于 dateA,则返回一个正数;如果 dateB 早于 dateA,则返回一个负数;如果两者相等,则返回 0。sort() 方法利用这个返回值来决定元素的排序位置。

最终,poolList 数组会被重新组织,使得具有较晚 createTime 的元素出现在具有较早 createTime 的元素之前,实现了按时间降序排列。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值