js、JavaScript 数组列表、数组对象列表排序, 字符串排序

需要排序的数据如下: 

1、数组排序

let arr = [9, 2, 4, 6, 3]
// 正序
console.log(arr.sort((a, b) => a - b))
// 倒序
console.log(arr.sort((a, b) => b - a))

2、数组对象列表

let arr = [{ num: 9 }, { num: 2 }, { num: 4 }, { num: 6 }, { num: 1 }]
// 正序
console.log(arr.sort((a, b) => a.num - b.num))
// 倒序
console.log(arr.sort((a, b) => b.num - a.num))

3、数组对象列表,正则选中数字排序

let dataList = [
     { a: '文本文本' },
     { a: '文档文本' },
     { a: '文本1文本' },
     { a: '文本4文本' },
     { a: '文本2文本' },
     { a: '文本6文本' },
     { a: '文本9文本' },
     { a: '文本94文本' },
     { a: '文本33文本' }
 ]

思路: 给没有数字的填充0, 使用正则找到每一个字符串的数字, 给每一项添加一个字段, 数字作为值, 之后给 sort 方法传递个比较字段的函数, 最后删除该字段。

实现字符串排序

let reg = /\d+/;
dataList.forEach(item => {
  if (reg.test(item.a)) {
    item.id = parseInt(reg.exec(item.a)[0])
    return;
  }
  item.id = 0;
})
dataList.sort((a, b) => a.id - b.id).forEach(item => Reflect.deleteProperty(item,'id'))
// 输出
console.log(dataList)

4、封装好排序方法:

let a = [5,6,1,22,7]
const fun = (arr) => arr.sort((a, b) => a - b)
fun(a) // 调用

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CSDN_33901573

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

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

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

打赏作者

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

抵扣说明:

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

余额充值