js数组排序

js数组排序

数组排序函数

  • reverse() 反转原数组顺序
  • sort()将数组所有元素按字符串进行排序
let arr = [1, 25, 6, 33, 22, [4, 9]]

console.log(arr.reverse()); // [ [ 4, 9 ], 22, 33, 6, 25, 1 ]
// 实际上sort默认是将数组所有元素转换为字符串,作为映射进行排序
// 实际排序的是['1', '25', '6', '33',' 22', '4, 9']
console.log(arr.sort()); // [ 1, 22, 25, 33, [ 4, 9 ], 6 ]

自定义排序

sort()可接收一个比较函数作为参数

比较函数有两个参数a和b,这两个参数是数组的两个元素

比较函数返回一个数字n

  • 如果n>0,则a在b后面
  • 如果n<0,则a在b前面
  • 否则ab部分先后
let arr = [1, 25, 6, 33, 22]

console.log(arr.sort((a, b) => a - b)) // [ 1, 6, 22, 25, 33 ]
console.log(arr.sort((a, b) => b - a)) // [ 33, 25, 22, 6, 1 ]

示例:根据年龄将person数组排序

class Person {
  constructor(name, age) {
    this.name = name
    this.age = age
  }
}

let persons = [
  new Person('T', 23),
  new Person('Y', 32),
  new Person('N', 20)
]
console.log(persons.sort((p1, p2) => p1.age - p2.age))

控制台输出

[
  Person { name: 'N', age: 20 },
  Person { name: 'T', age: 23 },
  Person { name: 'Y', age: 32 }
]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bdawn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值